我正在使用zend framework 2.2.2编写PHP应用程序。
我想知道如何使用zend framework 2来使用FlashMessanger。
现在我知道可以使用以下代码使用zf1获取Flash Messanger:
$this->messenger = Zend_Controller_Action_HelperBroker::getStaticHelper('flashMessenger');
如何使用zf2获取flash信使?
问题是我希望flash Messenger可以在我自己的实用程序类中使用 所以我没有控制器可以从那里获取信使。
任何想法?
感谢
答案 0 :(得分:2)
FlashMessenger是一个ControllerPlugin Zend\Mvc\Controller\Plugin\FlashMessenger
,这是它最有意义的使用它。将Messenger注入你的“UtilityClasses”对我来说听起来有点糟糕,因为这会使响应检查变得更加复杂,控制器也会变得更加臃肿。所以请记住这一点。
然而,可以将FlashMessenger
带入您想要的任何课程。唯一的问题是,您希望FM可用的所有类都必须由ServiceManager调用。您的ServiceFactories将如下所示:
// Module#getServiceConfig()
return array('factories' => array(
'MyServiceClass' => function($serviceLocator) {
return new MyService(
$serviceLocator->get('controllerpluginmanager')->get('flashmessenger')
);
}
));
当然,如果您希望注入完整的ServiceLocator
(不建议使用),您可以重新编写它以在您的ServiceClass中使用setter-injection甚至是lazy-getters。