我有一个关于我在应用程序中遇到的冲突/难题的问题。
我想为我的所有模型和控制器提供一些通用的“东西”,例如来自缓存的数据或会话信息,以及我的 PDO 包装器的方法。
目前,每个单独的功能控制器和功能模型都扩展了一个基本控制器和基本模型,而后者又扩展了一个执行所有常见操作的对象。
控制器将被路由器/调度程序调用,然后控制器将调用模型以获取一些数据。这样做的问题是它意味着主对象被构造了两次:一次是在调用特征控制器时,另一次是在特征控制器调用特征模型时。
见下图:
显然我做错了什么,所以我想知道这个问题是否有某种最佳实践解决方案。
我不想要的是必须通过控制器将对象加载的内容传递给模型。这意味着任何时候我必须向对象添加一个新的公共元素,我必须将它传递给模型。
$this->cache 或 $this->db 或 $this->session 在控制器和模型(以及未来的助手和杂项类)中始终普遍可用要简单得多。
我将如何解决这个问题?
谢谢 :)