这或多或少是过去 Stack Overflow 问题的以框架为中心的版本,该问题是关于 MVC 应用程序的大多数介绍性材料如何倾向于呈现模型、视图和控制器之间的紧密耦合。例如,您将拥有一个由用户控制器修改的用户表,该用户控制器反过来将过滤后的数据推送到用户视图。我的印象是很多 MVC 框架也倾向于反映这种模式。就其本身而言,这一切都很好,但除了使用 HTML 表单构建和显示单调的事物列表之外,它从未真正引导我做任何事情。
现在看到的 MVC 框架是Lithium,作为一个聪明的 PHP5.3 编码技术的案例研究,这似乎很有趣。一方面,Lithium 有一个Model
类,它提供围绕单个表的包装对象,并抽象出一些简单的查询。另一方面,它有一个很好的约定,将 URL 路由到控制器对象上的方法调用,然后渲染到显示模板。
但在此过程中,我发现自己不知道将表 A 中的数据与表 B 到 Z 中的数据相关联的所有有趣逻辑放置在哪里。或者至少,我不确定在哪里放置这些以与框架设计一致的方式实现逻辑。据我了解,Lithium 的Model
抽象只是消除了一些行级插入/更新/删除样板,而控制器/视图架构似乎主要与用户界面有关。我不想将大量业务逻辑放在Controller
从 URL 请求接收路由函数调用的同一个类中。
我的直觉是用我自己的代码来填补空白,这些代码或多或少完全存在于框架之外。我不确定我是否应该期待更多,但考虑到 Lithium 中其他所有东西的结构非常严格,感觉有点不满意,就像我本可以推出自己的样板减少代码,而无需花费大量时间来探索源代码一个大框架。
我在这里想念什么?使用这种类型的框架是否有推荐的架构或理念?