Yii Activerecord 框架之外的实现方法

5
我可以使用Yii的Activerecord(模型)类而不使用Yii吗? 看起来它有很多依赖项。我想在我的项目中使用Yii的ORM和验证机制。

尝试使用yiilite.php。 - gSorry
1
如果你只想要ORM,为什么不选Yii?可以看看其他选择:http://www.doctrine-project.org/projects/orm.html。此外,还应该比较DataMapper和ActiveRecord的区别:http://stackoverflow.com/questions/2169832/data-mapper-vs-active-record。最后,我想建议使用https://laravel.com,如果你想追求未来,这将是最好的PHP框架。当然,如果你已经决定了Yii,那就用Yii2吧。 - Syed Ekram Uddin
7个回答

13

Yii的ActiveRecord类有很多依赖类,因此您将无法仅使用这些类。每次出现错误时,您都需要包含所有依赖类。

如果您想要在项目中使用ORM,那么为什么不使用一些最好的可用于PHP的ORM呢?而且您可以100%确定没有任何问题。

您可以使用以下一些PHP ORM:

  1. Propel
  2. PHPActiveRecord
  3. Doctrine
  4. Redbean

欲了解更多信息,请查看以下一些SO问题:

  1. Good PHP ORM
  2. Redbean Vs Doctrine

3

你的问题似乎无法回答。在不使用整个框架的情况下,你无法从Yii中提取PHP类。像Symfony这样的框架为你提供了一些组件,你可以使用它们而不需要使用整个框架。 PHP上有一个ORM项目,我从未使用过,但你可以尝试一下: http://www.phpactiverecord.org/


3

3

如果你不懂得写作,可以从Yii中借鉴一些灵感或直接使用Yii本身,这样会更好。因为CActiverecord是Yii的核心部分,扩展了CModelCComponent。如果你试图从Yii中提取它,最终你会发现几乎所有内容都被复制了。


1

好的,你可以提取它,我建议你从Yii2中提取(因为它只需要一个容器来容纳组件实例,所以会更容易)。Yii是一个非常轻量级、模块化的框架,你可以只加载基本组件,那么为什么不加载整个框架呢?如果你只想使用AR和自己的路由,则导入Yii自动加载程序,然后尝试使用模型。我希望它能够正常工作。

但是,你需要一个完整的单独应用程序来生成模型,例如使用gii


1
最好不要单独使用它,因为Activerecord框架内有很多依赖类。您可以查看代码并像Yii中那样构建自己的验证,或选择流行的ORM,例如Proper或Doctorine。它们有非常好的文档。

http://propelorm.org/

https://www.doctrine-project.org/


0

你不能真正使用ActiveRecord类而不使用整个框架。 ActiveRecord不是一个独立的类,严重依赖于框架的其他组件,例如数据库、缓存、模式等...

提取过程更像是尝试重新实现类所需的框架组件。

如果你对Yii框架的ORM和验证机制感兴趣,我相信你应该深入挖掘yii的核心,并创建自己的“ActiveRecord”类来实现ORM+验证。

希望这回答了你的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接