本文整理汇总了PHP中Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent::hasResponse方法的典型用法代码示例。如果您正苦于以下问题:PHP GetResponseForExceptionEvent::hasResponse方法的具体用法?PHP GetResponseForExceptionEvent::hasResponse怎么用?PHP GetResponseForExceptionEvent::hasResponse使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent
的用法示例。
在下文中一共展示了GetResponseForExceptionEvent::hasResponse方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: onKernelException
public function onKernelException(GetResponseForExceptionEvent $event)
{
$this->logger->notice(sprintf('Exceptions catcher listener: catch kernel.exception event (exception: %s)', $event->getException()->getMessage()));
// If this is not a master request, skip handling
if (!$event->isMasterRequest()) {
$this->logger->debug('Exceptions catcher listener: this is not master request, skip');
return;
}
// If content already prepared
if ($event->hasResponse()) {
$this->logger->debug('Exceptions catcher listener: event already has response, skip');
return;
}
// Getting action
$apiServerAction = $event->getRequest()->attributes->get('apiAction');
/* @var $apiServerAction ApiServerAction */
// Something wrong
if (!$apiServerAction) {
$this->logger->error('Request parser listener: request has no apiAction attribute, sending empty response');
$event->setResponse(new JsonResponse([]));
return;
}
// Getting api server interface
$apiServerInterface = $apiServerAction->getApiServerInterface();
// Creating api response
$apiResponse = $apiServerInterface->getExceptionResponse($event->getException()->getMessage());
// Setting response
$event->setResponse(new JsonResponse($apiResponse->export()));
}
示例2: testOnKernelException
public function testOnKernelException()
{
$driver = new FailDriver();
$exception = AuthorizationException::from($driver);
$request = new Request();
$response = new Response();
$resolver = $this->newResolver();
$this->listener->addResolver($resolver);
$resolver->expects($this->once())->method('supportsDriver')->with($driver)->will($this->returnValue(true));
$resolver->expects($this->once())->method('supportsException')->with($exception)->will($this->returnValue(true));
$resolver->expects($this->once())->method('onException')->with($exception, $request)->will($this->returnValue($response));
$kernel = $this->getMockBuilder('Symfony\\Component\\HttpKernel\\HttpKernelInterface')->disableOriginalConstructor()->getMock();
$event = new GetResponseForExceptionEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST, $exception);
$this->assertFalse($event->hasResponse());
$this->listener->onKernelException($event);
$this->assertTrue($event->hasResponse());
}