需要为zend框架2中的每个模块单独的错误处理程序

时间:2016-12-17 06:17:08

标签: php zend-framework

我正在使用zend framework 2 for API。文件夹结构如下

  • 项目
    • 配置
    • 模块
      • 阿比
        • Module.php
      • Apiv2
        • Module.php

两个模块中module.php中的代码如下:

public function onBootstrap(MvcEvent $e)
{
    $eventManager        = $e->getApplication()->getEventManager();
    $moduleRouteListener = new ModuleRouteListener();
    $moduleRouteListener->attach($eventManager);
    $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR,array($this, 'handleError'));
    $eventManager->attach(MvcEvent::EVENT_RENDER_ERROR,array($this, 'handleError'));
}

public function handleError(MvcEvent $evt)
{
    //this is to force the error handleing so that our responses are also correct and 
    $router = $evt->getRouter();
    $uriString = $router->getRequestUri();
    $uri = new Uri($uriString);
    $queryArr = $uri->getQueryAsArray();

    $js = new JsonModel();
    $exception = $evt->getParam('exception');
    if(!$exception){

        $valueToEncode = array(
                'errorcode'=>"1",
                'message' =>$evt->getError(),
                'statuscode'=>404,
                'file'=>$evt->getName(),
                'line'=>0
        );
    }
    else{
        ....
    }
}

我希望Apiv2模块的handleError方法中的代码与Api模块中的代码不同。但是这两个模块的代码都存在冲突。

请给我解决方案,以便每个模块的错误处理程序方法应该单独工作。

0 个答案:

没有答案