对于一个庞大的项目,什么是更好的CakePHP或纯PHP?

时间:2009-06-04 16:20:25

标签: cakephp frameworks

我只知道纯PHP,以前从未使用过框架,但是我的老板要我创建我们的下一个项目,这比我们之前做的所有事情要大得多(意味着比只需要5个脚本的页面更大)工作,更像100或类似的事情。)

但是我不确定我是否能用纯PHP来实现它,现在我听说CakePHP对它有帮助(结构等)。 我应该学习这个还是只使用我的纯PHP方式?

8 个答案:

答案 0 :(得分:7)

如上所述,您对该项目的范围和复杂性的定义有点模糊,但我会回答一般观察,即较大的项目比较小的项目受益于更多“自上而下”的结构。我怀疑地球上几乎每个PHP开发人员都是通过直接攻击index.php开始,然后为guestbook.php写了一些代码,依此类推。然后你就会意识到你在重复自己并重新开始重构类和库。

框架是自然的下一步。该术语涵盖了相当多的产品;有些人会将你与特定的工作方式紧密联系在一起,有些则更像是一个带有一些松散前控制的库。

我建议你选择一个松散的MVC框架,它为你提供了一个良好的结构,但不会过度限制你,并且应该允许你使用现有的库。我没有使用CakePHP - 我的经验是Zend Framework,我非常喜欢(不是它完美无瑕)。但是,我和另一位开发人员一起比较了Cake和ZF的功能,从我看到的内容看,Cake有很多ZF显示的优点。事实上,在很多地方,你几乎可以通过更改一些类名来将代码从一个代码转换为另一个代码。

我怀疑Cake并不是一个糟糕的选择,但我不能推荐它,因为我对它不了解。 ZF我知道,现在很好,所以我可以推荐它 - 而且文档现在非常好。

在深入了解Cake或ZF之前,您需要对MVC设计模式有所了解。 Jason Sweat's book是一个很好的,如果稍微过时的介绍,ZF manual也非常强大。

顺便说一句,它不是“Cake和Pure PHP”之间的选择。 Cake(和ZF)都是“Pure PHP”。区别在于“我写的PHP”和“其他人写的PHP”(所以我没有必要)。从这一点来说,重要的是你相信“其他人的代码”的质量,在这种情况下,你必须通过推荐和声誉来做。

但不要只是问“什么是最好的PHP框架?” - 这就像要求最好的文本编辑器;)我确信这个回答(或问题)会在短时间内被标记为“主观”。

答案 1 :(得分:3)

我一直在使用Cake几年。我要说如果你之前没有使用过任何MVC框架,你一定要学会一个扩展你的视野。

这并不是为了方便您使用框架。这是关于如何在框架土地上完成工作。即使您后来决定不使用框架,您也可以获得一些可以继续使用的见解。

您对该项目的描述听起来并不太多 huge 。然而,学习MVC框架在那里是一些严肃的学习曲线。基本上你会觉得你正在学习一门全新的编程语言。因此,对于您的情况,如果您确实决定尝试使用框架,则可能需要在计划中考虑这一点。

为了让您入门,我个人认为CakePHP拥有更优雅的解决方案,并且拥有更严格的设计理念。另一方面,CodeIgniter对于“纯PHP-ist”似乎更自然,因为它不那么抽象,所以它可能更容易上传。

要回答标题问题,我认为任何巨大的项目都应该从一开始就不再使用框架。使用框架的全部意义在于您希望利用他们为您构建的一些内容。但是对于真正的巨大的项目,无论如何都应该定制许多部分,因此您可能会发现自己受到框架的限制而不是利用它。

但话说回来,我真的不认为你的项目(按你的描述)是 huge 附近。作为一个球场估计,我认为任何低于5万到10万次点击的项目都可以安全地受益于使用框架。

答案 2 :(得分:1)

我不是说CakePHP。但任何框架都可以。主要的好处是你将得到一个默认的文件夹结构,皮肤,语言框架(oscommerce等)。您将自定义此框架。大多数功能将默认/可能存在,如电子邮件发送,页面创建,菜单生成等。

您没有说明您计划的应用程序类型(可能是因为NDA)。更多细节,更准确的答案。

答案 3 :(得分:1)

我同意不应该决定是否使用CakePHP,而是决定是否使用框架。有很多PHP框架(Cake,Symfony,Codeigniter,Zend等),每个框架都有它的优点和缺点。

如果是我,我会使用一个框架来严格执行一些MVC规则......对于一个大型项目,保持结构有助于在其他人继承系统时继续前进。

这里的关键是不要被“代码生成”方面所迷惑。如果您不知道框架(或​​者不了解您的语言),代码生成可能会比它的价值更令人头疼。

答案 4 :(得分:1)

使用像cakephp这样的PHP框架将减少您需要编写的代码量。在cakephp中,有很多东西可以节省时间,比如使用元素来显示经常使用的代码片段。如果项目非常大,那将非常有用,因为您的代码将更短,更干净,更有条理。维护起来也会容易得多。

答案 5 :(得分:1)

我认为纯php是最好的选择,因为如果你使用框架,你只能限制它们的界限,

如果没有框架,你可以自由设计任何东西,如果你认为你有最好的解决问题和制作算法的能力那么你必须使用php而不是任何类型的框架

如果你只是想要完成工作那么你必须使用框架我没有在框架上工作有一些蛋糕php的知识我不喜欢它因为我认为我绑定了一些规则,我更喜欢编写我自己的代码,如果你想在将来做更少的工作,只需编写自己的规则(就像制作自己的框架一样)只需保存你在小文件中创建的所有东西,然后在其他项目中使用它们就像其中一个OOP(面向对象编程)的好处

答案 6 :(得分:0)

如果您了解PHP,那么如果您start reading other peoples code,您将了解有关如何实施通用设计模式的更多信息。您阅读的越多,您就越能了解好的代码是什么样的,以及坏代码的样子。

“你自己编码”是很诱人的,因为你会更充分地理解它,但请记住,你不会成为唯一一个从事此工作的人,有一天,你可能真的想要工作其他东西,并且拥有一个广泛实施和理解的系统可以使其更容易继续前进。

至于cakePHP对于你的特定项目是否是一个不错的选择,如果不知道它会变得“更大”,很难说。

答案 7 :(得分:0)

一切都取决于项目和项目利益相关者。如果要在开发期间或项目上线之后进行大量修改,那么框架可能非常局限于某人没有对框架背后的理论的强烈掌握(不是对程序员的判断,只是一个声明) 。)