18

不久之后,我几乎从来没有听到过CakePHP 这个词而没有听到Rails 这个词。这两个框架主要是基于它们如何遵循 MVC 模型而相似的,还是它们有其​​他显着的相似之处/不同之处?

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

4

3 回答 3

39

CakePHP 就像是对 Rails 的廉价盗版。它试图像 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 输出正常工作的黑魔法
  • 我们如何追踪<javascript>显示在每页末尾的空白标签
于 2009-01-30T04:40:11.187 回答
2

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

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

我会看到 Rails 的主要优势是 Ruby(因此更好的 OO 实现 rails 等)和社区。宝石(少得多/不那么全面的蛋糕插件),在线培训材料,书籍(有口才的红宝石吗?)聚会小组等。

于 2012-08-30T03:39:24.943 回答
1

我没有用过CakePHP,但我对它的印象不是太好。如果您正在寻找类似 Rails 的 PHP 框架,我认为您最好还是研究一下Symfony。开始可能有点复杂,但整个项目似乎比 CakePHP 组织得更好。

当然,请持保留态度,因为这些事情是相当主观的。

于 2009-02-01T00:55:18.503 回答