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

时间:2009-07-22 11:28:15

标签: php codeigniter scalability scale

从开发的角度来看,我一直在阅读伟大的codeigniter。我相信使用该框架将使开发过程更快。但我问自己的问题是,单独制作的框架会不会满足您的需求?

CI是否尽管广告占用空间小,但却“陷入困境”,因为它基本上是一个框架框架(后来将PHP称为C框架)?有没有很好的方法来分散负载?野外是否有任何大型应用程序用CI制作?

由于 卡斯帕。

2 个答案:

答案 0 :(得分:22)

我正在运行一个大约有11K文件的codeigniter网站。

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

到目前为止,我的经历非常积极。

一旦你得到一个(真正的)模板引擎,如smarty插入Codeigniter,你将获得中大型网站所需的所有功能。

您必须考虑将您的网站组织成大型“元组”,因为Codeigniter中的“控制器”结构需要这样的行为。 ('博客','商品','论坛'等。)

CI很容易添加插件。

该框架简化了您需要手动编写代码的大量垃圾。它快速,简单且可配置。

到目前为止,我对CI的一个主要抱怨是,它不是很多应用程序感知。默认布局假设您正在运行1个应用程序。就我而言,我有一个全局应用程序,可以将全局文件拖入所有正在运行的应用程序中。但是,这可以更优雅地解决。此外,您必须在前控制器之间切换一点额外的绒毛。

我最喜欢的CI方面很容易在MySQL数据库上进行活动记录。设置数据库连接并运行活动记录查询非常简单。

我想说开始很容易。只需确保您四处寻找并找出如何将smarty插入您的应用程序。你可以使用Codeigniter的默认'视图',但是你需要的时间,你的模板中的/ else逻辑就被搞了。

我在每个应用中设置了“模板”和“内容”区域,我可以分别使用智能模板和静态内容填充。其余的我可以从数据库连接中提取。

答案 1 :(得分:20)

这真是一个只有你能回答的问题。当您谈到“大型系统”时,您可能意味着主要使用的内容(通过网页浏览/等),或者包含大量业务规则但仅由少数人使用的内容。应用程序是否需要快速,或者您可以跨多个服务器对其进行负载平衡吗?

你的“PHP是一个关于C的框架”评论相当糟糕,IMO。不,PHP没有C那么快。但它在处理Web请求方面要好得多。 PHP用于世界上一些最大的网站 - Facebook最初完全用PHP编写。雅虎使用PHP相当多。所以PHP对于任何人来说都足够快,特别是考虑到数据库几乎总是你的瓶颈。如果PHP应用程序运行缓慢,您可以使用memcache / load balancers /在网络上放置更多应用程序服务器。很容易扩展PHP的结尾。

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

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

  • CakePHP非常适合快速开发。它的性能是主要框架中最糟糕的,尽管1.3版本(即将推出!)应该可以让你免费(API没有变化,他们只是删除PHP4支持)25%的速度提升。它专注于ActiveRecord,并且可以非常快速地启动和运行一个功能齐全的站点(严肃地说,严重的是快速开发/原型设计)。
  • Zend是使用最广泛的。它的添加模块具有最大的灵活性。它速度超快,虽然不是特别轻巧。对于企业项目,我会选择这个或symfony。感觉就像使用buncha不同的库给我。他们的命名惯例有点繁琐......
  • Symfony - 请参阅Zend评论。虽然symfony应该更加企业化。
  • CodeIgnitor是该街区的新热门小孩。它专注于避开你的方式,同时仍然是一个“框架”,即一个可以帮助你更快地完成工作的工具。它的运行速度很快,但开发速度要慢一些。