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

问题描述 投票:3回答:8

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

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

cakephp frameworks
8个回答
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框架?” - 这就像要求最好的文本编辑器;)而且我确信这个回答(或问题)会在短时间内被标记为“主观”。


3
投票

我已经使用Cake几年了。我要说如果你以前没有使用过任何MVC框架,那么你应该学习一个扩展你的视野。

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

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

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

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

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


1
投票

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

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


1
投票

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

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

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


1
投票

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


1
投票

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

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

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


0
投票

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

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

至于cakePHP是否适合您的特定项目,很难说不知道它会变得“更大”。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.