【发布时间】:2013-12-16 18:04:53
【问题描述】:
实际上,在我的 ZF2 项目中,我为模型、表单等创建了基类。例如:我注意到我的模型中可能需要 ServiceLocator,因此我创建了一个实现 ServiceLocatorAwareInterface 的类 Application\Model\Base。这也适用于我的表单。
我在想这是否是最好的方法,或者我是否应该在构造函数中传递依赖项。所以我今天遇到了一个问题:
我有一个表单 (Application\Form\Customer\Add) 需要在其构造函数中使用 ServiceLocator。但是此时ServiceLocator还没有被设置(构造函数在setServiceLocator()之前被调用)。
那么,您认为解决此问题的最佳方法是什么?我应该通过构造函数传递依赖关系还是继续使用我实际使用的这种方法(并尝试以另一种方式解决客户表单问题)?
【问题讨论】:
-
我认为最好将
ServiceManager传递给Module.php中的Model构造函数,并在从Form类中获取实例时将ServiceManager传递给控制器中的Form构造函数。
标签: dependency-injection zend-framework2 service-locator