【问题标题】:Switch symfony 1.4 from Doctrine to Propel将 symfony 1.4 从 Doctrine 切换到 Propel
【发布时间】:2010-12-22 13:59:15
【问题描述】:

如何正确地将新安装的 Symfony 1.4 框架从 Doctrine(默认配置)切换到 Propel?

【问题讨论】:

    标签: symfony1 doctrine propel


    【解决方案1】:

    如果您创建新的(新)项目...

    symfony generate:project xxx --orm=Propel
    

    最简单的事情:)

    如果您想更改现有项目 - 您必须在配置文件中挖掘并启用 propel 插件。

    您的配置文件应类似于:

    // config/ProjectConfiguration.class.php
    public function setup()
    {
      $this->enablePlugins('sfPropelPlugin');
      ...
    }
    

    (基于 Symfony 页面,下次你应该挖掘它 - 特别是 Practical Symfony

    【讨论】:

    • 顺便说一句,如果你开始新项目,我强烈推荐 Doctrine。这样更好。
    • 我同意 Tomasz 的观点。不要使用 Propel。
    • 和 Priidik:至少请给出一些论据、链接等,准确说明为什么 Doctrine 比 Propel 更好(但是一年多之后,论据肯定发生了变化……)。
    • 作为一个简短的评论 - 它可能对 Symfony 更好,因为它现在是 Symfony 中的默认 ORM,并且两个团队密切合作。在我做研究的时候,Doctrine 的开发更加积极(尽管 Propel 开发从那以后加快了)。
    • 我猜你应该创建 propel.ini 文件。您可以在 symfony 安装的文件夹 lib/plugins/sfPropelPlugin/config/skeleton/config/propel.ini 中找到骨架 - 或在这里:trac.symfony-project.org/browser/branches/1.4/lib/plugins/…
    【解决方案2】:

    如果您喜欢面向对象的语法,请使用 Propel。

    【讨论】:

      【解决方案3】:

      如果您喜欢看起来像 SQL 语句的链式对象方法调用,请使用 Doctrine。如果您喜欢隐藏 SQL 的真实对象,请使用 Propel。

      如果您喜欢创建条件对象,然后将其呈现为 WHERE 子句,请使用 Propel。如果您喜欢创建类似于 SQL 的 WHERE 子句,请使用 Doctrine。

      您也可以同时使用两者。不推荐,但如果你使用像撇号这样只使用 Doctrine 的插件,你可能别无选择。

      【讨论】:

        【解决方案4】:

        回复这里完全推荐 Doctrine 的贡献者:在我看来,这个决定并不明确。 Propel 现在还支持可链接的查询方法,所以如果你喜欢这种方法,那么两者都还在发挥作用。此外,Propel 团队认为,模型对象的生成特性使其在大多数用例中的运行速度比 Doctrine 更快。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-04
          • 2011-06-24
          • 1970-01-01
          相关资源
          最近更新 更多