我对CakePHP有一些了解并认为它是一个很棒的框架。 然后,我遇到了这个叫做Qcodo的东西。这是另一个PHP框架。 我一直听到Zend很多。它们看起来都非常整洁,但我想知道所有这些框架之间有什么区别。
在我浪费太多时间学习另一个框架之前, 有没有人知道每个框架的利弊?
他们似乎都有一个总体目标:使用PHP轻松,模块化和可扩展的Web应用程序开发。
修改 在CakePHP and Zend
之间找到了这个有趣的比较结果答案 0 :(得分:6)
我从未听说过Qcodo。
CakePHP是一个功能齐全的框架,具有很多自动化功能,但不幸的是它是slowest frameworks out there之一。它也没有官方论坛,社区真的没那么繁忙。它试图成为Ruby on Rails克隆,但这对PHP来说效果不好。
Zend令人印象深刻。它拥有强大的社区和企业支持。它功能非常强大,但它也非常臃肿(参见基准测试),因此性能适中。根据我的意见,您可以在不使用整个框架的情况下单独使用这些组件,甚至可以将它们与其他框架一起使用!
我在工作中使用CodeIgniter,我喜欢它。它是迄今为止最新手友好的框架,并且凭借您的CakePHP体验,它应该是轻而易举的。它very good documentation完整,清晰,写得很好。它有一些其他框架没有的功能(例如ORM),但CI有一个我见过的最活跃的框架社区。由于为它编写库很容易,你可以找到一个库来做你想做的任何事情 - ORM,身份验证等。另外,如果你想要一个ORM用于CI,我推荐DataMapper。
您可能还想查看Kohana。它是CodeIgniter的衍生产品。它严格来说是PHP5并且具有ORM和更多功能。虽然我没有自己使用它,但我听到了很好的东西。
答案 1 :(得分:4)
我建议阅读每个功能并确定您需要的功能,并查看您最常使用的功能的代码示例。
某些框架对您来说似乎很直观,但对其他框架则不然。选择PHP框架是IMO非常个人化的选择。
在使用CakePHP一段时间后,我自己一直在使用CodeIgniter。转换的主要原因是由于性能的原因,但CakePHP在过去几年已经走过了漫长的道路,所以这可能不再是一个正当理由。
[编辑:显然,它仍然存在性能缺陷,请参阅ryeguy的帖子和评论。]
我从未发现Zend很直观,也从未考虑过Qcodo。
维基百科有list of web app frameworks by language,你可能会找到帮助你决定的信息。
答案 2 :(得分:3)
我同时使用QCodo和amp; Zend框架
QCodo是代码生成器的MVC框架,许多代码都是从您的数据库设计中获得的,并且可以生成随时可用的Search& amp;编辑每个数据库表的表单。它还处理数据库表关系,为表之间的一对多/多对多关系预先生成一组方法。
由于这些代码是从您的数据库设计生成的,因此每个项目都优化了所有代码。简而言之,它是database oriented
............................................... ....
据我所知,Zend Framework是从这个项目的创始人那里得知的,它可以解耦所有模型,实际上他们正在为Zend_ACL(访问)部署大量不同类型项目的现成模型。用于验证的控制列表),Zend _Search _Lucene,Zend _Service _Twitter,Zend _Service _Flickr等)。而且我认为未来会有。
答案 3 :(得分:2)
我对Qcodo的投票!不久之前我做了一个最适合我的研究,结果是qcodo,现在我不能不考虑使用qcodo做项目,或者至少他的数据库处理部分绝对太棒了。
答案 4 :(得分:2)
我认为Simfony是最好的PHP框架,虽然我还没有使用它。我主要使用Qcodo / Qcubed,但我正在转向Rails,这就是为什么我发现Simfony还不错。我试过Code Igniter而不是,它使用简单,轻便(我想),但它没有任何脚手架,但现在可能会改变。正如另一个人说你可以使用外部ORM,因为CI默认没有。 Zend Framework具有非常模块化的架构,并且具有许多库。我使用Zend_ACL,但权限继承很痛苦,所以我做了自己的实现,Zend_Lucene查询没有找到我需要的数据...... ZF是一个非常低级别的框架,它也需要一个ORM。我看了一下CakePHP,但我发现它的数据库界面不是Propel,Qcodo和Doctrine,但我认为你可以使用自己的库。
我通常想要一个框架:
我遇到的大多数高级PHP开发人员都使用Simfony,但这仅仅来自我个人的经验。
总结一下,我会使用Simfony,我强烈建议使用Ruby或JRuby尝试Rails。
答案 5 :(得分:1)
确定最佳框架应该是逐个项目的决策。如果您有一个使用innoDB引擎的大型数据库以及表之间的大量关系,请查看QCubed(Qcodo)。我没有看到任何处理复杂ORM关系的框架 - 甚至可以轻松地反向关系!它在处理复杂查询(例如反向关系查询)方面也非常快 - 尽管任何框架中的性能在很大程度上取决于编码人员有效编写的能力。
如果您正在构建CMS,那么您将需要Zend或Symfony来实现MVC功能。 QCubed / codo据说是以MVC为基础的,但它似乎并没有像Zend那样清晰。 QCodo还希望永远不会改变数据库的结构 - 人们可以管理,但是一旦网站启动就将新字段添加到数据库表中真的很痛苦,因为它会为每个表自动生成自定义类。
答案 6 :(得分:0)
我使用CodeIgniter主要是因为它具有非常好的文档并且具有易于使用的声誉。此外,拉斯穆斯说这是他最喜欢的,这无疑是一个蹩脚的原因,但我没有抱怨。
答案 7 :(得分:0)
不要忽视Symfony,它摇滚。我认为它最大的优势是在每个级别都采用一致的“最佳实践”方法,充满活力的社区和出色的文档。
答案 8 :(得分:0)
我使用的是QCubo的继承者QCubed。它是您从开源PHP框架中获得的最佳选择。如果你知道如何使它工作,那就快了。唯一的缺点是文档缺乏。但是,示例网站很棒。开始使用它,我打赌你会有很多安宁! :)