我是CakePHP程序员。我决定尝试YII框架。我想找出CakePHP与YII相似和不同的方式。另外,正如他们声称的那样,YII的测量速度比CakePHP快吗?

有帮助吗?

解决方案 4

蛋糕和Yii之间的差异

  1. 蛋糕具有每个控制器的模型,在yii中,每个动作有1个动作IE控制器独立于yii中的特定模型
  2. 在yii中,您必须在每个动作中手动指定您的视图和模型
  3. 除非手动指定
  4. 在yii中,模型可以是2种类型(IE)的活动记录模型或表单模型,或者是基于要分别保存数据的模型
  5. CakePHP执行惯例,而YII是灵活的。

其他提示

从个人经验来看,这两个框架都有几种差异,尤其是在蛋糕与YII中处理模型的方式。

  • 在CakePHP中,您不能使用复合材料主键,这对我来说是主要的交易。 YII支持复合主键。
  • 蛋糕 执行 大会,而yii 优惠 惯例,您不得遵守某个标准。虽然强制惯例是建立良好编程实践的好方法,但最终,YII提供的灵活性对我来说是胜利。
  • 开箱即用的性能,我认为yii具有优势,但是与性能调整一样,使用适当的缓存配置,只要您谨慎使用ActivereCord模式,它们并没有太多分开

附带一提,我从CakePHP和YII中都实施了Web应用程序的实施,我从团队中获得的反馈是,经验不足的团队更喜欢CakePHP,而YII则受到较有经验的团队的优先选择。使您能做到的一切。

一个旧的帖子,但只是增加了一些经验。

我已经使用了蛋糕一段时间了。确切地说是3年。

目前,YII绝对是PHP中MVC技术的领导者。这是一个框架,目前可能没有其他PHP框架可以进行比较。就我个人而言,我对“网格”印象深刻...我认为PHP方面总是以某种方式缺乏这一点:)它非常快,适合各种各样的开发人员。

对于cakephp:我已经阅读了许多人声称并可能坚持的博客 “公约”“严格” 框架。

就是说,我同意并不同意。一旦您掌握了它,通常会说出的说法似乎很明显。蛋糕的每一个规则 引用 军队 引用 很容易被覆盖。最重要的是,人们没有注意到的是 为什么要强制会议?

如果您是一个有很多生产压力的开发人员,我会说 自动魔术 场景后面运行的蛋糕,例如获取相关模型数据,保存相关模型数据,定义基于关系 会议 绝对很棒。

遵循这些惯例的整洁性无法在这里解释,而只能经历。

我还阅读了很多博客,在这些博客上,我看到了有关框架速度的投诉。根据我的经验,我会说,你应该 读了这本书。 人们定义关系数量,默认情况下蛋糕获取其所有相关模型数据。您可以覆盖此行为,只能获取所需的数据。实际上,您的束缚,可以随时解开模型。蛋糕也有一种叫做的行为 “可容纳” 出于目的。

一旦您将蛋糕放在蛋糕上,生产和发展就确实是真正的“快速”。

另外,自CAKPHP 2以来,Lot发生了变化,它非常快,甚至更可扩展。

总而言之,我真的相信蛋糕的文件很差。凭借更好的文档,更多的真实世界示例和存储库,这将是一个更强大的竞争者。

这两个框架都非常相似,但是我喜欢yii,因为快速,在型号上使用懒惰加载,数百个助手(jQuery窗口小部件),无需XML/YAML,许多扩展程序,控制台和GII代码生成器,Admin界面,没有魔术( +可自定义, +控制),活动论坛,充分而可爱的OOP设计,甚至系统...。

CakePHP也是一个很好的框架,我喜欢他们计划培训课程。

我恳求所有那些猛击蛋糕的bashp。作为两个框架的用户,如果您知道自己在做什么,CakePHP非常灵活,这意味着他们要求人们使用约定,但是同一文件告诉您如何解决此问题。到目前为止,还没有提供真正的基准,所以让所有人感到羞耻...

根据我的经验,我不得不做蛋糕的表演调整,而不是yii,所以我想我还不能比较东西应该如何工作或期望工作的工作方式。再加上大多数基准测试,都使用CakePHP和其他框架,因此我希望CakePHP的性能不佳。

我已经与CakePHP合作了大约2年,几乎完成了我在YII的第一部。 (我也在Zendf做了一年,并讨厌它)CakePHP对其严格的系统有益,但其灵活性有很大的局限性。 Yii实际上以我称为“黑客我”的方式完美地制作。最好的功能是,它从一个空控制器类开始您的一天,该类用于继承所有控制器。但是很快我发现,我可以跳入并覆盖具有特殊应用程序范围(例如渲染)的标准YII功能。在蛋糕中,您不能在应用程序代码中做太多黑客。对于一些非常特殊的情况,您最终将转到Core Directory(进行核心更新时非常糟糕的主意)。

与CakePHP相比,YII中的插件/扩展非常容易创建。

cakephp直到我知道,不支持模块。我本人不是模块粉丝,但是最终,当您的应用程序代码增长时,您希望将其分为单独的组,例如,您可以将模块外包给其他人。

我相信,CakePHP核心足够沉重,可以放缓交通高度的地点。 Zendf更糟。 YII在调用动作时有一个较小的呼叫堆栈。

没有cakephpt.php,但是有一个yiit.php(单个文件中的整个框架,仅生产使用)用于使用apc/etc进行YII中的所有内容,并在系统文件打开的呼叫中节省几毫秒。

YII的URL规则集及其反向算法对于PHP中的所有其他框架都是无与伦比的。与CakePHP相比,IMO YII URL配置太容易了。然后,当您调用CreateUrl时,它也会从同一配置中从同一配置中制成确切的浏览器URL,这使您的应用程序中的URL仅通过配置文件更改。如果您选择将控制器/模块移至单独的(子)域,则需要更改,您的应用代码可能会保持粗心。

模型具有属性标签,规则,这些方式也可以更改。所有模型方法支持GET/POST属性 - 救生员。那么关系规则也比CakePHP中的能力要好得多。在某些规则中,验证甚至是原始的PHP代码都非常灵活。

非常灵活的文件路径约定也是YII独有的。然后,子布局也很容易地创建视图的可重复使用性。

我试图学习CakePHP,但是该文档虽然广泛的结构很差。例如,在手册的“ formhelper”部分中,它讨论了表单选项而不解释其工作方式,只有语法,然后显示HTML输出。对于像我这样的初学者,我想知道语法可以,但是,收集到的表单数据的何处,我该如何拾取输入字段,我该如何指导form input input opput opput opput opput of to的何处,这意味着您的意思是您“创建表单的上下文”,这是什么上下文以及如何使用的等等。

这是什么意思,

“假设用户hasandbelongstomany group。在您的控制器中,将骆驼箱复数变量(在这种情况下为组 - >组,或额外的funkymodel->额外的funkymodels)使用SELECT选项。在控制器操作中,您将提出以下内容:”。

我确实研究了Codeigniter,这在其解释中是如此直观,但是CakePHP文档虽然非常好的介绍,但并没有解释事物,但读起来更像是参考手册。我目前正在看YII,虽然它比Codeigniter更复杂,但该文档比CakePHP更具信息性,因此可以理解。

YII对MVC的初学者来说更好,但是对于初学者来说,CakePHP很难。两者都是不错的框架,但是YII有更多的网络中可用的教程或文档。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top