【发布时间】:2017-05-08 19:23:44
【问题描述】:
我正在开发我的 PHP (H)MVC 项目,在该项目中我将视图与控制器分开 - 如答案 How should a model be structured in MVC? 所示。他们的关系是1:1,所以他们有相同的“动作”。因此,在 bootstrap.php 中,实例化它们后,我调用:
// ... Controller and view are already instantiated.
call_user_func_array(array($controller, $actionName), $actionParameters);
call_user_func_array(array($view, $actionName), $actionParameters);
假设一个控制器和一个视图分别成为一个模型(域对象)作为构造函数参数。 使用Auryn 依赖注入容器,我尝试在控制器和视图之间共享同一个模型实例,而不事先实例化它。例如。在 bootstrap.php 中进行控制器和视图实例化之前。
tereško 在他的回答中描述了模型/服务工厂的使用。但作为“注”,他说:
...更好的实现将有 DI 容器(如 Auryn) 来创建控制器和视图,只需要 服务,而不是使用工厂。
我的问题是:我可以在没有模型工厂的情况下使用依赖注入容器来实现此功能吗? 我有点卡在这项任务中,我真的不知道这是否可能。 谢谢。
【问题讨论】:
标签: php design-patterns model-view-controller model service-layer