我希望通过使用Zend Framework 2来创建模型工厂(TableGateway)的优雅方式。
我不想将所有依赖注入放在文件module.config.php。
中答案 0 :(得分:0)
嗯,我也不喜欢这样,为了更好的可读性,我把它全部用于工厂课程。
<强> Module.php 强>
class Module implements \Zend\ModuleManager\Feature\ServiceProviderInterface
{
public function getServiceConfig()
{
return array(
'factories' => array(
'namespace-model-servicename' => 'Namespace\Factory\SomemodelServiceFactory'
)
);
}
}
<强>命名空间\厂\ Servicename.php 强>
<?php
namespace Namespace\Factory;
use Zend\ServiceManager\ServiceLocatorInterface;
use Zend\ServiceManager\FactoryInterface;
use Namespace\Model\SomemodelService;
class SomemodelServiceFactory implements FactoryInterface
{
/**
* Create service
*
* @param ServiceLocatorInterface $serviceLocator
* @return \Namespace\Service\SomemodelService
*/
public function createService(ServiceLocatorInterface $serviceLocator)
{
$service = new SomemodelService();
$service->setEntityManager($serviceLocator->get('Doctrine\ORM\EntityManager'));
return $service;
}
}
现在这是一个注入Doctrines EntityManager的ServiceFactory的示例。显然你需要重构所有类和东西来满足你的需求,但基本上这就是你要运行的方法。