不久之后,我几乎从来没有听到过CakePHP 这个词而没有听到Rails 这个词。这两个框架主要是基于它们如何遵循 MVC 模型而相似的,还是它们有其他显着的相似之处/不同之处?
对我来说,Rails 的主要吸引力之一是做 Ajax 是多么容易。CakePHP 也是这样吗?
不久之后,我几乎从来没有听到过CakePHP 这个词而没有听到Rails 这个词。这两个框架主要是基于它们如何遵循 MVC 模型而相似的,还是它们有其他显着的相似之处/不同之处?
对我来说,Rails 的主要吸引力之一是做 Ajax 是多么容易。CakePHP 也是这样吗?
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 中的错误几乎为我杀死了它。我可以讲很多关于
<javascript>
显示在每页末尾的空白标签Cake 的布局很像 Rails,显然从中汲取了很多灵感和想法。Cake 是对 MVC 框架的一个很好的介绍,而且从 cake 经验来看,rails 似乎很简单。
使用 JS 助手的 Cake,Ajax 非常简单。事实上,一切都超级简单。它是一个很棒的框架,特别是对于分布式应用程序(例如 cms)或任何其他易于托管 php 应用程序的情况。
我会看到 Rails 的主要优势是 Ruby(因此更好的 OO 实现 rails 等)和社区。宝石(少得多/不那么全面的蛋糕插件),在线培训材料,书籍(有口才的红宝石吗?)聚会小组等。
我没有用过CakePHP,但我对它的印象不是太好。如果您正在寻找类似 Rails 的 PHP 框架,我认为您最好还是研究一下Symfony。开始可能有点复杂,但整个项目似乎比 CakePHP 组织得更好。
当然,请持保留态度,因为这些事情是相当主观的。