Php CodeIgniter是大型应用程序的明智选择吗?

Php CodeIgniter是大型应用程序的明智选择吗?,php,codeigniter,scalability,scale,Php,Codeigniter,Scalability,Scale,从开发的角度来看,我一直在阅读codeigniter是多么伟大。我确信,使用该框架将使开发过程更快。但我问自己的问题是,满足您需求的独立框架是否会有所不同 CI是否会因为它基本上是一个框架上的框架(后者将PHP称为C的框架)而使系统陷入“泥沼”,尽管它所宣传的占地面积很小?有没有好办法分散负载?在野外是否有使用CI的大型应用程序 谢谢 卡斯珀。这确实是一个只有你才能回答的问题。当你提到“大型系统”时,你可能指的是一些被大量使用的东西(通过页面浏览/等等),或者是一些包含大量业务规则但只被少数人使

从开发的角度来看,我一直在阅读codeigniter是多么伟大。我确信,使用该框架将使开发过程更快。但我问自己的问题是,满足您需求的独立框架是否会有所不同


CI是否会因为它基本上是一个框架上的框架(后者将PHP称为C的框架)而使系统陷入“泥沼”,尽管它所宣传的占地面积很小?有没有好办法分散负载?在野外是否有使用CI的大型应用程序

谢谢
卡斯珀。

这确实是一个只有你才能回答的问题。当你提到“大型系统”时,你可能指的是一些被大量使用的东西(通过页面浏览/等等),或者是一些包含大量业务规则但只被少数人使用的东西。应用程序是否需要快速,或者是否可以跨多个服务器进行负载平衡

在我看来,你的“PHP是C上的一个框架”评论是相当不正常的。不,PHP不如C快。但它在处理web请求方面要好得多。PHP在世界上一些最大的网站上使用——Facebook最初完全是用PHP编写的。雅虎相当多地使用PHP。所以PHP对于任何人来说都足够快,特别是考虑到数据库几乎总是你的瓶颈。如果PHP应用程序速度变慢,可以使用memcache/负载平衡器/在网络上放置更多应用程序服务器。很容易扩展PHP端的东西

我可以告诉您的是与其他框架的简单比较。我在有限的部署中使用了CI,主要是帮助其他人,但我所看到的,我很喜欢。与CakePHP相比,它在运行时速度方面具有优势,但它会增加开发时间(因为Cake最大的优势是它能够快速开发和部署)。就速度而言,它感觉相当于Zend或Symfony,这仍然比自己编写原始PHP慢5-7倍

总结各种框架(注意:我的观点如下):

  • CakePHP非常适合快速开发。它的性能是主要框架中最差的,尽管1.3版本(即将推出!)应该可以免费为您提供25%的速度提升(API没有变化,他们只是取消了PHP4支持)。它专注于ActiveRecord,能够以极快的速度创建并运行一个功能齐全的站点(认真地、认真地快速开发/原型制作)
  • Zend是应用最广泛的。通过添加模块,它具有最大的灵活性。它的速度非常快,但不是特别轻。对于企业项目,我会选择这个或symfony。对我来说,感觉像是在使用不同的库。他们的命名规则有点繁琐
  • Symfony-参见Zend评论。虽然symfony被认为更具进取心
  • Codeignator是街区里新来的辣妹。它的重点是在保持“框架”的同时不妨碍您的工作,即帮助您更快完成工作的工具。运行起来很快,但开发起来有点慢

我正在运行一个codeigniter站点,其中包含大约11K个文件

我已经根据自己的需要对codeigniter的基本结构进行了大量修改。例如,我有3个应用程序,其中3个前端控制器使用相同的系统文件。我使用smarty作为我的模板引擎。我拥有由jquery和prototype/Scriptaculous支持的丰富的PHP web应用程序。我使用表单验证、身份验证、活动记录、电子邮件等

到目前为止,我的经验是非常积极的

一旦你将smarty这样的(真正的)模板引擎插入Codeigniter,你就拥有了中型到大型站点所需的所有功能

您必须考虑将站点组织成大型“元组”,因为Codeigniter中的“控制器”结构期望这样的行为。(‘博客’、‘商品’、‘论坛’等)

CI很容易为其添加插件

该框架简化了许多原本需要手工编写的垃圾代码。它快速、简单且可配置

到目前为止,我对CI的一大抱怨是它不太支持多应用程序。默认布局假定您正在运行1个应用程序。在我的例子中,我有一个全局应用程序,它带有全局文件,可以拉入所有正在运行的应用程序中。然而,这可以更优雅地解决。此外,您还必须添加一点额外的绒毛,以便在前部控制器之间切换

我最喜欢的CI方面是在MySQL数据库上轻松创建活动记录。建立数据库连接并运行活动记录查询非常简单

我想说这很容易开始。只需确保你四处逛逛,弄清楚如何将smarty插入你的应用程序。您可以使用Codeigniter的默认视图,但在模板中需要if/else逻辑的那一分钟,您就完蛋了


我在每个应用程序中设置了一个“模板”和一个“内容”区域,我可以分别用smarty模板和静态内容填充它们。其余的我可以从DB连接中提取。

“将PHP称为C的框架”-那么您应该将我称为几升水的框架;-)你所说的“大型应用程序”到底是什么意思?如果PHP“作为C的框架”陷入困境,PHP将不是一种可行的web技术。不过,如果您愿意,欢迎您使用C编写网站:DW您在哪里获取所有这些性能指标?我很想看到他们:)从6个月前开始。我想PMJ之前做过一些测试。关于CakePHP1.3速度提升的评论来自于Cake guys()大型CI用户发布的1.3。请你澄清一下“你需要的那一分钟,如果/否则你的模板中的逻辑被搞砸了”好吗?你的意思是它太乱了?我同意。是的,我有同样的问题。凌乱,是的;“拧紧”,不。如果你避免使用大括号和PHP,它一点也不混乱