使用Service Manager Zend Framework 2

时间:2013-04-21 11:01:37

标签: zend-framework zend-framework2 servicemanager

如果我在模块类别中有一个服务管理器,例如,我可以从模块应用程序中的类别读取吗?

我在Application的Module.php中已经这样做了,'list-category'位于模块的module.config.php文件中:

public function onDispatch(MvcEvent $e)
{
    // get service manager from the application object
    $sm = $e->getApplication()->getServiceManager();
    // get categories service
    $categories = $sm->get('list-category');
    // get view model
    $vm = $e->getViewModel();
    // store category list in a variable
    $vm->setVariable('categories', $categories);
}

我已经在应用程序的模块类别中阅读了服务管理器。

1 个答案:

答案 0 :(得分:1)

是的,您可以使用模块A中模块B中添加到服务管理器的服务。这些服务只是添加到不同模块中的服务管理器,但是可以跨模块使用,因为配置文件由模块管理器合并在一起,然后交给服务管理器。这就是为什么命名服务名称以避免命名跨模块的冲突是一个好主意。只需像往常一样抓取它,它应该可以工作。

关于您提供的代码,那么问题是什么?它不起作用吗?你有任何错误吗? $categories的内容是什么?您是否将您的功能附加到活动管理器?如果没有,那么this article会向您展示如何完成。此外,请仔细考虑是否要对Category模块中的每个页面请求执行此类操作。我不知道你的推理,但是为了在每个页面加载上做这样的事情,你应该有充分的理由这样做。