CakePHP与Ruby on Rails有何不同?[已关闭]

2022-08-30 21:50:06

不久之后,我几乎从未听到过CakePHP这个词,除非听到Rails这个词。这两个框架是否主要基于它们如何遵循MVC模型而相似,或者它们是否有其他显着的相似/差异?

Rails对我来说的主要吸引力之一是做Ajax是多么容易。CakePHP也是如此吗?


答案 1

CakePHP就像一个廉价的,混蛋的Rails剽窃。它试图像Rails一样,而不做任何使Rails变得伟大的事情。这感觉有点相似,我猜。

CakePHP有一个Ajax助手,它执行类似于Rails中Ajax相关帮助程序方法的事情,所以是的,在某种程度上,这也是正确的。

但是CakePHP实际上是徒劳的练习:它的作者写它是为了让他们不必学习Ruby,即使一起学习Ruby和Rails可能比弄清楚CakePHP这个可怕的混乱更容易。

(这个,来自一个在日常工作中做CakePHP的人。


既然大家都问过,我对CakePHP最大的抱怨是它如何设法完全扼杀面向对象编程的便利性:当然,它实现了Active Record模式,就像Rails一样,但它让你传递数据结构。

我觉得任何有逻辑的人都会使用错误和动态加载到对象中的属性来实现ORM,这正是ActiveRecord(Rails库)所做的。设置一个成员变量来确定要加载哪些关系的整个想法是有缺陷的。$recursive

基于PHP也是非常致命的。你不能用全局状态做任何事情,你必须依靠,你为每个请求支付启动罚款。当然,您正在使用的任何环境都有优化,但仍然如此。人们说Ruby很慢,但我自己的Rails应用程序比他们的CakePHP等效应用程序运行得更快,最后我检查了一下。我承认没有这方面的数据。mod_rewrite

最糟糕的是,CakePHP中的错误几乎要为我杀死它。我可以讲任何数量的故事

  • 我们花了两天时间弄清楚为什么CakePHP拒绝连接到正确的数据库主机
  • 由于使用太多组件导致内存上限,我们页面的一半时间变空白
  • 我们的 AppController 中的代码量,因为每个组件加载都会消耗几兆字节的内存
  • 整理数据结构以使XML输出正常工作的黑色艺术
  • 我们如何追踪出现在每页末尾的空白标签<javascript>

答案 2

蛋糕的布局很像Rails,显然从中汲取了很多灵感和想法。Cake是对MVC框架的一个很好的介绍,而来自蛋糕体验的rails似乎非常简单。

Ajax使用JS助手使用Cake非常容易。事实上,一切都超级容易。这是一个很棒的框架,特别是对于分布式应用程序(例如CMS)或任何其他易于托管php应用程序的情况。

我认为Rails的主要优点是Ruby(因此是Rails等更好的OO实现)和社区。Gems(更少/更不全面的蛋糕插件),在线培训材料,书籍(雄辩的ruby有人吗?)聚会小组等。


推荐