我一直在阅读几个PHP框架,并将我的候选人减少到CodeIgniter和Symfony(我知道还有更多)。非常倾向于CodeIgniter,但尚未100%决定。
我不是在寻找一般的“CodeIgniter vs Symfony”讨论。
比较中有一件事情不断出现:人们说Symfony是针对“高级”编码员和“更大”的网站; CodeIgniter适用于“初学者”编码器和“较小”站点。但我还没有看到任何技术证据。我所看到的关于CodeIgniter的一切感觉都是正确的。
任何人都可以从结构上和技术上解释人们将这些陈述作为基础吗?
我想尽我所能。一旦我做出决定,我想把注意力集中在一个框架上。
谢谢, 马修
答案 0 :(得分:4)
CodeIgniter和Symfony(版本1和版本2)之间最大的技术差异是Symfony更容易扩展。 Symfony2尤其如此;您可以根据自定义代码或其他库中的代码替换框架的整个部分。您甚至可以从Symfony2中获取任意数量的核心组件,并在其上构建您自己的框架。但是,重要的是要注意,因为Symfony是如此“先进”,它具有更高的学习曲线。
以下是我的看法:CodeIgniter很棒,当你有一个小(ish)项目属于CodeIgniter要解决的问题类别时。但是当你想用你的方式做某事时,而不是CodeIgniter的方式,你将不得不与框架作斗争,这永远不会有趣。
另一方面,如果您正在开发Symfony2项目并希望按照自己的方式行事,那么您可以。它不一定很快,但它是可能的。对我来说,这是最重要的事情 - 你需要能够让框架做你想做的事。
如果你有时间,请阅读Symfony docs和cookbook - 它们应该让你了解Symfony的功能以及如何定制和扩展它。
我所看到的关于CodeIgniter的一切感觉都是正确的。
然后使用CodeIgniter。最重要的是你对框架/工具集感到满意。如果您完成一个项目并发现它缺少功能,您可以随时查看其他框架。
答案 1 :(得分:-1)
我建议在没有框架的情况下开始。如果你已经编程了一段时间并且对MVC这样的概念感到满意,以及为什么你可以在这个模式中实现你的代码,那么框架开始变得更有意义。
框架适用于有许多程序员的大型项目,并且您需要一种构建应用程序层的一致方法,如MVC。该框架可能会为对象管理提供一些机制,并为您构建应用程序事件(控制器)以及将视图逻辑与模型逻辑分离。
我的PHP应用程序规模较小,因此我没有使用任何框架。当我以前在Coldfusion中编码时,在较大的应用程序上,我使用了MachII,Model-glue,Fusebox和ColdBox。每个人都擅长某些东西,每个人都提升了一致性,但每个人都有很多开销,而且经常感觉它们在路上。我看到一些开发人员遇到了,因为的框架。 我没有开始使用任何CF框架,直到我没有一个构建较小的应用程序。
如果您更喜欢CodeIgniter,无论出于何种原因,请使用它。
答案 2 :(得分:-1)
CodeIgniter,因为温和的学习曲线和出色的文档。如果您觉得自己已经超出了CI,那么就可以给其他框架了,你可能永远不会这样做。