![](/img/trans.png)
[英]Enabling Zend Developer Tools toolbar causes database connection errors
[英]Disable Zend Developer Tools
如何在特定控制器中禁用ZF2开发人员工具?
我已经尝试过返回终端ViewModel,但它仍会呈现。
您可以创建自己的侦听器,该侦听器将在基于特定控制器分离事件的zdt逻辑之前触发。
<?php
namespace Application\Listener;
use Zend\EventManager\AbstractListenerAggregate;
use Zend\Mvc\MvcEvent;
use Zend\ServiceManager\ServiceLocatorInterface;
class DetachZdtListener extends AbstractListenerAggregate
{
protected $listeners = array();
protected $serviceLocator;
public function __construct(ServiceLocatorInterface $serviceLocator)
{
$this->serviceLocator = $serviceLocator;
}
public function attach(\Zend\EventManager\EventManagerInterface $events)
{
// Attach a listener to the finish event that has a priority sooner
// than the ZDT listener(s)
$this->listeners[] = $events->attach(MvcEvent::EVENT_FINISH,
array($this, 'onFinish'), -9499
);
}
/**
* The method called when event is fired
*
* @param \Zend\Mvc\MvcEvent $e
*/
public function onFinish(MvcEvent $e) {
$controller = $e->getController();
if ($controller === 'Application\Controller\SomeController') {
$sm = $this->serviceLocator;
$eventManager = $e->getApplication()->getEventManager();
$sharedEventManager = $eventManager->getSharedManager();
$eventManager->detachAggregate($sm->get('ZendDeveloperTools\FlushListener'));
$eventManager->detachAggregate($sm->get('ZendDeveloperTools\ProfilerListener'));
$sharedEventManager->clearListeners('profiler');
}
}
}
然后,您只需要将此侦听器附加到模块的onBootstrap方法中,它就可以完成您想要的工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.