コード例 #1
0
 $eventsManager->attach('dispatch:beforeException', function ($event, $dispatcher, $exception) use($di) {
     if ($exception instanceof \Phalcon\Mvc\Dispatcher\Exception) {
         switch ($exception->getCode()) {
             case \Phalcon\Dispatcher::EXCEPTION_HANDLER_NOT_FOUND:
                 //2
             //2
             case \Phalcon\Dispatcher::EXCEPTION_ACTION_NOT_FOUND:
                 //5
                 $di->getShared('session')->set('error_redirect_url', $di->get('request')->getURI());
                 $di->getShared('session')->set('error_exception_code', $exception->getCode());
                 $logInfo = '[404] ';
                 $logInfo .= '[File] ' . $exception->getFile();
                 $logInfo .= ', [Line] ' . $exception->getLine();
                 $logInfo .= ', [Mes] ' . $exception->getMessage();
                 $logInfo .= ', [URI] ' . $di->get('request')->getURI();
                 $logInfo .= ', [ModuleName] ' . $dispatcher->getModuleName();
                 $logInfo .= ', [ControllerName] ' . $dispatcher->getControllerName();
                 $logInfo .= ', [ActionName] ' . $dispatcher->getActionName();
                 $logger = $di->getShared('logger_error');
                 $logger->log($logInfo, \Phalcon\Logger::ERROR);
                 $di->get('response')->redirect('/home/error/show404');
                 return false;
         }
     }
     $logInfo = '[500] ';
     $logInfo .= '[File] ' . $exception->getFile();
     $logInfo .= ', [Line] ' . $exception->getLine();
     $logInfo .= ', [Mes] ' . $exception->getMessage();
     $logInfo .= ', [URI] ' . $di->get('request')->getURI();
     $logger = $di->getShared('logger_error');
     $logger->log($logInfo, \Phalcon\Logger::ERROR);