Zendframework 2, 이벤트 관리자 및 리스너에 대한 질문이 있습니다.젠드 프레임 워크 2 : AbstractListenerAggregate
class ApiErrorListener extends AbstractListenerAggregate {
public function attach(EventManagerInterface $events)
{
$this->listeners[] = $events->attach(MvcEvent::EVENT_RENDER, __CLASS__ . '::onRender', 1000);
}
public static function onRender(MvcEvent $e)
{
if($e->getResponse()->isOk())
{
return;
}
$httpCode = $e->getResponse()->getStatusCode();
$sm = $e->getApplication()->getServiceManager();
$viewModel = $e->getResult();
$exception = $viewModel->getVariable('exception');
$model = new JsonModel(
array(
'errorCode' => !empty($exception) ? $exception->getCode() : $httpCode,
'errorMsg' => !empty($exception) ? $exception->getMessage() : NULL
)
);
$model->setTerminal(true);
$e->setResult($model);
$e->setViewModel($model);
$e->getResponse()->setStatusCode($httpCode);
}
}
나는 ApiErrorListener가 청취자이거나 관찰자라고 말합니다. 왜 attach() 함수를 구현해야합니까? 이 링크에서
, 당신은 단지 제목 (방송 첨부 또는 청취자를 분리) 볼 수 있습니다. 혼란 스러울 것 같아 ...누구든지 도와주세요.
미리 감사드립니다.