我应该使用框架还是编写自己的MVC?

xen*_*non 6 php model-view-controller refactoring zend-framework cakephp

我有一个项目,目前到处都是,我正在考虑将其作为MVC.

问题是系统当前正在使用,我无法更改界面(它在框架中:s)还有一些我需要自己处理的事情,如密码生成,登录和用户级别.

我已经拥有了MVC的模型方面所以我想知道是否值得使用像Zend Framework或CakePHP这样的框架,或者仅仅编写我自己的View和Controllers来解决这个问题?

我将不得不慢慢地工作,如果我使用其中一个现成的框架,我不确定我是否能够这样做.

Spl*_*iFF 9

我为Coldfusion编写了自己的MVC框架,因为目前的"当月风味"Mach-II非常缓慢.切换后我的页面生成时间从2-5秒下降到9毫秒.

在过去的3年里,我已经将这个框架开发成了我所使用的任何商业或开源框架的竞争对手(我已经使用了很多),通过在函数库和组件中构建一系列常见任务( CMS,CC处理,图像处理等.)

虽然毫无疑问有些"重新发明轮子"但我最终得到的轮子正是我需要做的工作.我理解它是如何工作的亲密关系,没有文件可以提供.

当然,有一天,一些未来的程序员可能会诅咒我的代码,因为我不喜欢使用他们喜欢的图书馆 - 但坦率地说 - 我只是不在乎.我是为ME写的,它完成了我需要的东西并且做得很好.我在这个过程中也学到了很多东西.

已经说过,通过编写自己的框架,您不会自动为您的客户/同事造成伤害.公共框架往往没有真正的方向,所以他们倾向于大量膨胀,试图让每个人都开心.这种臃肿意味着学习更多,更多可能出错.您的框架将满足更小的要求,并且与更成熟的公共文档相比,良好的文档可以更容易理解和设置.

我说去吧,生活在边缘一点点.也许在5年后你会发布下一个"Mach-II"或者其他什么,我们都可以为此烦恼.


duf*_*ymo 8

通常情况下,我会惊恐地退缩并建议不要再将另一个网络MVC框架带入世界,但值得注意的是,我们的主持人Joel和Jeff对此事有另一种看法:

来自乔尔: 杰夫重塑轮子的防守:不要重新发明轮子

最后一个想法:如果这是一个单人项目,那么你只会影响自己这个选择.如果涉及开发长寿命产品的团队,我的抵抗力就会飙升.如果你自己动手,你可能会对团队和客户造成伤害.


cle*_*tus 5

你会发现CakePHP特别具有"侵入性".恕我直言,你应该使用轻量级框架或编写自己的框架.我通常不会建议你自己编写这类东西,但是当你处理软件时,你无法改变它有时候是最好的解决方案.此外,PHP中的控制器并不是一件难以写入的事情,因此如果您使用的预制解决方案太重或者不适合您当前的约束,您有时会不必要地过度复杂化解决方案.

对于轻量级MVC框架,我强烈推荐CodeIgniter.