如何正确设置像 CakePHP 和 Laravel 这样的 MVC 应用程序?

How to properly setup a MVC application like CakePHP and Laravel?

我正在尝试了解胖模型和瘦控制器概念的好处。到目前为止,我已经阅读了很多文章,下面是我的问题。请回答考虑 CakePHP 3 和 laravel 5.2.

中最佳方法的问题

1) 遵循 fat models/keeping 控制器内部的业务逻辑概念只是意味着永远不要在控制器内部使用 ORM 方法,如查找、保存等。

2) 为什么 cakephp 和 laravel 文档中的所有示例仅显示控制器内部的查询,而不是应在控制器中调用的自定义模型函数内部的查询。

3) 有很多模式和架构,例如数据映射器、存储库、活动记录。哪一个最适合大型企业应用程序。在这种情况下使用 Doctrine 比使用捆绑的 ORM 更好吗?

4) 如果我需要在自定义模型函数中调用另一个模型怎么办。可以吗?如果不是,那么在这种情况下最好的方法是什么。请举例说明,例如 cakephp 文档使用博客、用户、评论等

谢谢。

您在这里问了一些相当宽泛的问题,所以期待宽泛的答案。根据我的经验给你一些见解:

  1. 不,在很多情况下,逻辑足够简单或没有直接绑定到业务逻辑可以包含在控制器方法中的数据。话虽如此,我喜欢将控制器视为两个端点之间的道路;即我可能会沿途获取数据,但我尽量不在控制器中操作数据,只是将其提供给视图或要更新的存储库。
  2. 简单吗?最好不要在一个例子中引入太多的概念。同样的原则适用于编程,抽象并保持简单。
  3. 我在项目中都使用了存储库模式、活动记录和学说。它是适合工作的正确工具。
  4. 我尽量让直接模型访问保持抽象。您的底层存储架构可能随时更改,最好不要依赖任何类型的 "structure"。