PHP框架(CodeIgniter,Yii,CakePHP)与Django比较

21

我需要开发一个网站,每天需要承载大约2000个用户,并且速度是一个关键因素。此外,这个网站是以用户为导向的,用户可以登录并查看他的个人资料,注册特定的活动。该网站将托管在VPS服务器上。虽然我在Python和PHP方面有非常好的经验,但我不知道如何使用其中任何一个框架。我们有充足的时间来尝试和学习其中一个框架。

请问,在考虑网站速度、功能和安全性的情况下,哪种框架会更适合这种场景?

谢谢。


3
我会将另外两个加入到那个列表中:Zend,Symfony。 - Wadih M.
在标题中,应该是CodeIgniter而不是...tor。 - janosrusiczki
这个线程有点过时了(实际上是其他100个线程的重复),但我会添加Yii:http://www.yiiframework.com/performance/ - umassthrower
不要忘记 web2py - User
8个回答

31

这是一个非常主观的问题,但我个人会推荐Django。 Python是一种非常好用的语言,Django框架小巧、易于使用、文档齐全,而且社区也相当活跃。

虽然这个选择部分原因是因为我不喜欢PHP,但还是需要对我的建议持保留态度。


3
+1,但我认为现在有更多的PHP文档比Python。但是,如果你知道这个风险,就像我和其他开发者一样继续前进吧:P - Agusti-N

29

现今大部分框架都足够快,能够满足你的需求。究竟使用哪一种环境取决于你自己感觉最舒适的地方。虽然有一些微小的差别,但MVC框架共享很多相同的原则,因此,你选择使用哪一个框架,真的只是因为你最喜欢使用哪一个。

所以,如果你更喜欢Python,那么答案就是使用Python框架,并且Django是最好的选择。如果你更喜欢PHP(尽管我个人不太喜欢),那么你需要做出更多的决定。但任何一种PHP框架都可以。它们确实可以。只需选择一个具有全面文档的外观漂亮的框架并开始工作即可。


14

我曾经使用过CakePHP和Django,我非常推荐Django。虽然我不太了解CodeIgniter,但我记得在一年前评估框架时就已经排除了它。当时看来,CakePHP更加成熟。

首先,Django社区更加庞大,并且花费了大量时间专注于可重用的应用程序。这意味着您可以免费获得许多功能。再加上django admin,您已经有了很多事情可以做了。我没有跟上PHP框架的最新动态,但我相信Django也更加发展。

这更多是个人喜好,但我只是喜欢Python而不是PHP。比较在CakePHP和Django中如何处理模型:http://book.cakephp.org/view/67/Understanding-Models, http://docs.djangoproject.com/en/dev/topics/db/models/#topics-db-models。显然,Python更易读。

请记住,Django提供了一个非常棒的ORM,并为您构建模式,即如果您不想接触数据库,则无需操作数据库。而对于PHP框架,您必须设计自己的数据库,这使得我在这个点上变慢了。您始终可以随后添加索引以提高速度。

这可能是最具偏见性的,但如果您正在启动一个新应用程序-认真地-只需坚持使用Django或Ruby on Rails。人们谈论它们并且它们拥有最大的社区和最好的开发人员,这不是没有原因的。

您还可以查看Pinax以获得许多Django好处。


经过三年的Cakephp经验,我转向了Django框架。但在php世界中,Cake是最好的之一。 - Mostafa Karamizade

4

CodeIgniter是一个快速、文档齐全的IT技术,也有庞大的社区,并且对程序员友好。


3

CodeIgniter 是一个很棒的 PHP 框架,速度快且文档十分详细。开始阅读他们的用户指南,它将为您提供使用该框架的良好思路。


0

扩展Matchu:

或者,-如果你更喜欢PHP-是时候学习/成长其他东西,比如Python。学习起来并不难,而且一旦开始就会变得非常有趣。

许多人都已经完成了PHPtoPython/Django的移植,例如Mozilla、Netgeo、Nasa、 TheOnion 等等。


0
如果我选择 PHP 部分,我会选择 CodeIgniter - 它不会太过于干扰你。但是它没有任何代码/视图/模型生成器,你需要自己打一些代码。
但是除了 PHP 之外的其他语言似乎更加“性感”。

0

我正在使用CodeIgniter 1.7.2,对于复杂的网站来说非常好和强大,但它确实缺少某种代码生成器,例如允许一键构建IT应用程序。

我从观看教程中得到的印象是Django有这个功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接