【问题标题】:Qcodo vs. CakePHP vs. Zend [closed]Qcodo vs. CakePHP vs. Zend [关闭]
【发布时间】:2009-02-26 18:38:03
【问题描述】:

我对 CakePHP 有一些了解,并认为它是一个很棒的框架。 然后,我遇到了一个叫做 Qcodo 的东西。它是另一个 PHP 框架。 我一直在听 Zend。它们看起来都非常整洁,但我想知道所有这些框架之间有什么区别。

在我浪费太多时间学习另一个框架之前, 有人知道每个框架的优缺点吗?

他们似乎都有一个共同目标:让 PHP 中的 Web 应用程序开发变得简单、模块化和可扩展。

编辑CakePHP and Zend之间发现了这个有趣的比较结果

【问题讨论】:

    标签: php zend-framework cakephp qcodo


    【解决方案1】:

    我从未听说过 Qcodo。

    CakePHP 是一个具有很多自动化功能的全功能框架,但不幸的是它是slowest frameworks out there 之一。它也没有官方论坛,也没有那么忙碌的社区。它试图成为一个 Ruby on Rails 的克隆,但它不能很好地与 PHP 一起工作。

    Zend 令人印象深刻。它拥有强大的社区和企业支持。它很有特色,但也很臃肿(参见那个基准),所以它的性能适中。不过据我所知,您可以在不使用整个框架的情况下单独使用组件,甚至可以将它们与其他框架一起使用!

    我在工作中使用CodeIgniter,我喜欢它。它是迄今为止对新手最友好的框架,并且根据您的 CakePHP 经验,它应该是轻而易举的事。它有very good documentation,它是彻底、清晰且写得好的。它有一些其他框架没有的特性(例如 ORM),但 CI 拥有我见过的最活跃的框架社区之一。由于为它编写库很容易,你可以找到一个库来做任何你想做的事情——ORM、身份验证等。此外,如果你想要一个用于 CI 的 ORM,我推荐DataMapper

    您可能还想查看Kohana。它是 CodeIgniter 的衍生产品。它是严格的 PHP5 并且有一个 ORM 和一些更多的特性。虽然我自己没用过,但我听说过好东西。

    【讨论】:

    • 你引用的比较确实有缺陷,我不知道你从哪里提取了你的 CakePHP“事实”,但它们完全是错误的。
    • 怎么样?唯一比我给出“有缺陷的事实”更糟糕的是你给出了一个空洞的反驳。
    • 我提供了一个关于 Cake 有多慢的基准 - 并且还有更多相同的结论。没有官方论坛。 Ruby on Rail 的许多神奇功能都需要在 PHP 中使用类似 hack 的变通方法,从而导致性能下降。这些都不是主观的,都是事实。
    • CakePHP 的官方论坛位于groups.google.com/group/cake-php CakePHP 的官方社区站点是bakery.cakephp.org 至于您引用的比较,它们都是古老的。当前稳定的 CakePHP 主要版本于 2008 年圣诞节发布。
    【解决方案2】:

    我建议阅读每个功能并确定您需要什么,并查看您将最常使用的功能的代码示例。

    有些框架对您来说可能很直观,但对其他人来说却不是。选择 PHP 框架是 IMO 非常个人的选择。

    在使用 CakePHP 一段时间后,我自己一直在使用 CodeIgniter。切换的主要原因是性能,但 CakePHP 在过去几年里取得了长足的进步,所以这可能不再是一个正当的理由。

    [编辑:显然,它仍然存在性能缺陷,请参阅 ryeguy 和 cmets 的帖子。]

    我从来没有发现 Zend 很直观,也从来没有研究过 Qcodo。

    维基百科有一个list of web app frameworks by language,您也可以在那里找到帮助您做出决定的信息。

    【讨论】:

      【解决方案3】:

      我同时使用 QCodo 和 Zend 框架

      QCodo 是一个代码生成器的 MVC 框架,许多代码都来自您的数据库设计,并为您的每个数据库表生成可供使用的搜索和编辑表单。它还处理数据库表关系,为表之间的一对多/多对多关系预先生成一组方法。

      由于这些代码是从您的数据库设计中生成的,因此所有代码都针对每个项目进行了优化。总之就是database oriented的框架

      .................................................. ....

      据我从这个项目的创始人那里知道,Zend 框架的设计是为了解耦所有模型,实际上他们正在为不同类型的项目部署大量现成的模型,来自 Zend_ACL(访问验证控制列表),Zend _Search _Lucene,Zend _Service _Twitter,Zend _Service _Flickr 等)。而且我认为未来还会有。

      【讨论】:

        【解决方案4】:

        我对 Qcodo 的投票!前段时间我做了一个最适合我的研究,结果是qcodo,现在我不能不考虑使用qcodo,或者至少他的数据库处理部分非常棒。

        【讨论】:

        • 您喜欢它的哪一点?我们正在使用它,但缺乏社区是一个巨大的挑战。
        • 如果您正在寻找社区,我鼓励您切换到 QCubed,这是 QCodo 的社区分支。论坛更加活跃,人们左右贡献代码(插件)——已经有几十个了。
        • 我同意 Alex,QCubed 是要走的路…… Angela QCodo 的学习过程很长,对初学者来说可能很难,但是一旦你掌握了它,你就可以用它做一些非常强大的事情。最值得喜欢的是,一旦您设置了数据库,就可以很容易地处理数据库中的数据,所以就像下面评论的一个答案一样,如果是关于数据库项目,您不能错过 QCodo。
        【解决方案5】:

        我认为 Simfony 是最好的 PHP 框架,虽然我没有使用它。我主要使用 Qcodo/Qcubed,但我正在转向 Rails,这就是我觉得 Simfony 不错的原因。我尝试了 Code Igniter 并没有,它使用简单,轻巧(我想),但它没有任何脚手架,但现在可能会改变。正如另一个人所说,您可以使用外部 ORM,因为 CI 默认情况下没有。 Zend Framework 有一个非常模块化的架构,并且有很多库。我使用了 Zend_ACL,但是权限继承很痛苦,所以我自己实现了,Zend_Lucene 查询没有找到我需要的数据...... ZF 是一个非常低级的框架,它也需要一个 ORM。我看了一下 CakePHP,但我发现它的数据库接口不是 Propel、Qcodo 和 Doctrine 级别的,但我认为你可以使用自己的库。

        我通常希望在一个框架中:

        • ORM 和对象包装数据库中的真实行 ($objUser->Name = 'Jack')
        • MVC - 大多数都是 MVC
        • 代码生成器(Qcodo 非常适合从数据库生成代码)
        • 前端控制器,路由和url友好(Qcodo没有)
        • 清理模板(Qcodo 有 $objLabel->Render();不是真正的标签)
        • link_to、image_tag 等辅助方法(Simphony 和 Ruby on Rails)
        • 数据库迁移以跟踪数据库更改
        • 用于测试真实应用程序的集成测试框架,而不是少数孤立的功能(Rails 可以做到这一点,Simfony 也可以)
        • 该框架的社区和受欢迎程度。

        我遇到的大多数高级 PHP 开发人员都使用 Simfony,但这只是我个人的经验。

        最后,我会使用 Simfony 位,我强烈建议使用 Ruby 或 JRuby 尝试 Rails。

        【讨论】:

          【解决方案6】:

          确定最佳框架应该是一个项目一个项目的决定。如果您有一个使用 innoDB 引擎的大型数据库,并且表之间存在大量关系,请查看 QCubed (Qcodo)。我没有看到任何框架可以处理复杂的 ORM 关系——甚至可以轻松地反转关系!它在处理复杂查询(例如反向关系查询)方面也相当快——尽管任何框架中的性能在很大程度上取决于编码器的高效编写能力。

          如果您正在构建 CMS,那么您需要 Zend 或 Symfony 来实现 MVC 功能。 QCubed/codo 据说是基于 MVC 的,但它似乎不像 Zend 那样清晰。 QCodo 还依赖于从不更改数据库的结构 - 可以管理,但是一旦站点启动,向数据库表添加新字段真的很痛苦,因为它会为每个表自动生成自定义类。

          【讨论】:

          • 这条关于永远不会更改数据库的评论是不正确的。虽然 Qcodo 将生成代码,例如基于 users 表的类 UsersGen,但有一个派生类称为 Users。你从不编辑 UsersGen,你把你的自定义放在用户类中。
          【解决方案7】:

          我使用 CodeIgniter 主要是因为它有非常好的文档并且以易于使用而著称。另外,Rasmus 说这是他最喜欢的,这无疑是一个蹩脚的理由,但我没有抱怨。

          【讨论】:

          • CI 不在比较列表中。
          【解决方案8】:

          不要忽视 Symfony,它会摇摆不定。我想说它的最大优势是在各个层面上始终如一的“遵循最佳实践”方法、充满活力的社区和出色的文档。

          【讨论】:

            【解决方案9】:

            我正在使用 QCodo 的继任者 QCubed。它只是你可以从开源 PHP 框架中获得的最好的东西。如果您知道如何使其工作,速度会非常快。唯一的缺点是缺少文档。但是,示例站点很棒。开始使用它,我打赌你会很平静! :)

            【讨论】:

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