从另一个模块访问实体/存储类

时间:2012-12-11 21:14:59

标签: php model-view-controller ppi

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

感谢。

1 个答案:

答案 0 :(得分: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'));
}

希望这会有所帮助。感谢。