没有 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 的核心部分,扩展 CModelCComponent 如果你尝试从 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'

Yii2 ActiveRecord save失败

Yii ActiveRecord - 有没有办法只更新脏属性?

yii2 ActiveRecord多表关联以及多表关联搜索的实现

yii2之ActiveRecord 模型

Yii2 - ActiveRecord 到数组