没有 yii 的 Yii Activerecord
Posted
技术标签:
【中文标题】没有 yii 的 Yii Activerecord【英文标题】:Yii Activerecord without yii 【发布时间】:2014-12-16 09:27:27 【问题描述】:我可以在没有 Yii 的情况下使用 Yii 的 Activerecord(模型)类吗? 看起来它有很多依赖项。我想在自己的项目中使用 Yii 的 ORM 和 Validation 机制。
【问题讨论】:
试试yiilite.php 如果您只寻找 ORM。为什么是易?寻找其他选项doctrine-project.org/projects/orm.html 还可以查看 DaraMaper Vs ActiveRecord ***.com/questions/2169832/… 如果您想继续前进,我最想建议的是laravel.com。这将是目前最好的 php 框架。另外,如果 Yii 是您的选择,请选择 Yii2 【参考方案1】:Yii 的 ActiveRecord 类有很多依赖类,因此你不能只使用这些类。对于您遇到的每个错误,您最终都会包括所有依赖类。
如果您想在您的项目中使用 ORM,那么为什么不使用一些可用于 PHP 的最佳 ORM?此外,您将 100% 确定没有任何损坏。
您可以使用的一些 PHP ORM 是:
-
Propel
PHPActiveRecord
Doctrine
Redbean
有关更多信息,请查看以下一些 SO 问题:
-
Good PHP ORM
Redbean Vs Doctrine
希望这会有所帮助。
【讨论】:
【参考方案2】:如果你不这样做,我会说得更好,并通过借鉴 Yii 的想法来编写自己的东西,或者最好使用 Yii 本身,因为 CActiverecord
是 Yii 的核心部分,扩展 CModel
和 CComponent
如果你尝试从 Yii 中提取它,最后你会发现你几乎复制了所有内容。
【讨论】:
【参考方案3】:您的问题似乎无法回答。如果不使用整个框架,就无法从 Yii 中提取 PHP 类。 Symphony 等框架为您提供了一些您可以使用但不需要使用整个框架的组件。 PHP上有一个项目ORM,我没用过,不过大家可以做个体验... http://www.phpactiverecord.org/ 希望对你有帮助,抱抱。
【讨论】:
【参考方案4】:是的,您可以通过将 yii 定义为依赖项来做到这一点。
请检查下面的链接可能对你有帮助:)
http://www.yiiframework.com/doc-2.0/guide-tutorial-yii-integration.html#using-yii-in-others
【讨论】:
【参考方案5】:好吧,你可以提取它,我建议你从 Yii2 中提取它(这会更容易,因为它只需要一个容器来保存组件实例)。 Yii 是一个非常轻量级的模块化框架,你可以只加载基础组件,那么为什么不加载整个东西呢?但是,如果您只想使用带有自己路由的 AR,请导入 Yii 自动加载器,然后尝试使用模型。我希望它能够工作。
但是,例如,您将需要整个单独的应用程序来生成带有 gii
的模型。
【讨论】:
【参考方案6】:最好不要单独使用它,因为 Activerecord 在框架中有很多依赖类。您可以查看代码并像在 Yii 中一样构建自己的验证,或者您可以选择流行的 ORM,例如 Proper 或 Doctorine。他们得到了很好的文档。
http://propelorm.org/
https://www.doctrine-project.org/
【讨论】:
【参考方案7】:如果没有整个框架,您将无法真正使用 ActiveRecord 类。 ActiveRecord 不是一个独立的类,它严重依赖于框架的其他组件,例如数据库、缓存、架构等...
提取过程看起来更像是尝试重新实现类运行所需的框架组件。
如果你对 Yii 框架的 ORM 和验证机制感兴趣,相信你应该深入挖掘 yii 的核心,创建自己的“ActiveRecord”类来实现 ORM + 验证。
希望这能回答你的问题。
【讨论】:
以上是关于没有 yii 的 Yii Activerecord的主要内容,如果未能解决你的问题,请参考以下文章
Yii2 错误 - 找不到类 'yii\mongodb\ActiveRecord'
Yii ActiveRecord - 有没有办法只更新脏属性?