【问题标题】:Yii Activerecord without yii没有 yii 的 Yii Activerecord
【发布时间】:2014-12-16 09:27:27
【问题描述】:

我可以在没有 Yii 的情况下使用 Yii 的 Activerecord(模型)类吗? 看起来它有很多依赖项。我想在自己的项目中使用 Yii 的 ORM 和 Validation 机制。

【问题讨论】:

标签: php activerecord yii yii2


【解决方案1】:

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

希望这会有所帮助。

【讨论】:

    【解决方案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 + 验证。

              希望这能回答你的问题。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多