是否可以从另一个模块访问实体/存储类,或者我应该在需要它们的每个模块中创建相同的类?
谢谢。
您应该在模块的 Module.php 文件中的 getServiceConfig() 方法下将存储类设置为“服务”。
public function getServiceConfig()
{
return array('factories' => array(
'user.storage' => function($sm) {
return new \UserModule\Storage\User($sm->get('datasource'));
}
);
}
现在服务 'user.storage' 存在于系统范围内,您可以使用 $sm->get('user.storage') 在任何其他服务声明中使用它,或者从您的控制器中调用 getService() 来获取您的服务.
public function indexAction()
{
$us = $this->getService('user.storage');
$user = $us->getByID($this->getRouteParam('id'));
$this->render('UserModule:index:index.html.php', compact('user'));
}
希望这可以帮助。谢谢。