不久之后,我几乎从未听过CakePHP这个词而没有听到Rails这个词.这两个框架是否主要基于它们如何遵循MVC模型,或者它们是否具有其他重要的相似性/差异?
对我来说,Rails的主要吸引力之一就是使用Ajax是多么容易.CakePHP也是如此吗?
CakePHP就像一个廉价的,混乱的Rails ripoff.它试图像Rails一样没有做任何让Rails变得更棒的东西.我觉得它有点类似.
CakePHP有一个Ajax帮助器,它在Rails中执行类似于与Ajax相关的辅助方法,所以是的,在某种程度上,它也是如此.
但是CakePHP实际上是徒劳无功的:它的作者编写了它,所以他们不必学习Ruby,即使一起学习Ruby和Rails可能比找出像CakePHP这样可怕的混乱更容易.
(这是来自在日常工作中做CakePHP的人.)
因为你们都问过,我对CakePHP的最大抱怨是它如何设法完全控制面向对象编程的便利性:当然,它实现了与Rails一样多的Active Record模式,但它让你传递数据结构.
我觉得任何有逻辑的人都会使用错误和动态加载属性来实现ORM,这正是ActiveRecord(Rails库)所做的.设置成员变量的整个想法是$recursive
为了确定要加载哪些关系,这只是一个明显的缺陷.
以PHP为基础也非常致命; 你不能做任何与全球状态有关的事情,你必须依赖mod_rewrite
,你在每次请求时支付启动惩罚.当然,对于您正在使用的任何环境都有优化,但仍然存在.人们说Ruby很慢,但是我自己的Rails应用程序运行速度比CakePHP等价物快,最后我查了一下.我承认没有这方面的数据.
最糟糕的是,CakePHP中的错误只是为了我而杀了它.我可以讲任何数量的故事
我们花了两天时间弄清楚为什么CakePHP拒绝连接到正确的数据库主机
由于使用太多组件导致内存上限,我们页面的一半时间变得空白
我们的AppController中存在的代码量,因为每个组件加载花费几兆字节的内存
按摩数据结构的黑色艺术,使XML输出正常工作
我们如何追踪
每页末尾显示的空白标签