0

是否可以从另一个模块访问实体/存储类,或者我应该在需要它们的每个模块中创建相同的类?

谢谢。

4

1 回答 1

0

您应该在模块的 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'));
}

希望这可以帮助。谢谢。

于 2012-12-11T21:19:57.080 回答