Я пытаюсь понять, как создать событие Listener в Symfony и как оно работает.Symfony EventListener Как это точно работает
поэтому я просмотрел примеры calss из Symfony Docs.
<?php
// src/AppBundle/EventListener/AcmeExceptionListener.php
namespace AppBundle\EventListener;
use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
class AcmeExceptionListener
{
public function onKernelException(GetResponseForExceptionEvent $event)
{
// You get the exception object from the received event
$exception = $event->getException();
$message = sprintf(
'My Error says: %s with code: %s',
$exception->getMessage(),
$exception->getCode()
);
// Customize your response object to display the exception details
$response = new Response();
$response->setContent($message);
// HttpExceptionInterface is a special type of exception that
// holds status code and header details
if ($exception instanceof HttpExceptionInterface) {
$response->setStatusCode($exception->getStatusCode());
$response->headers->replace($exception->getHeaders());
} else {
$response->setStatusCode(Response::HTTP_INTERNAL_SERVER_ERROR);
}
// Send the modified response object to the event
$event->setResponse($response);
}
}
Я понимаю, что $event->getException()
из класса GetResponseForExceptionEvent выбирает throwns событие в моем приложении
Что я не тихо понять, как это почему $exception
может использовать getMessage()
and getCode()
. Может кто-нибудь кратко объяснить это мне и, возможно, немного больше о Слушателе событий Symfony.
Я должен признать, что вы на 100% прав, мне очень тяжело найти хорошо объясненную документацию для слушателей для SYmfony. Ссылка, которую вы мне прислали, поистине потрясающе благодарит вас. Answerd много вопросов у меня было – John
Рад я мог помочь :) Поверь мне, я был рад также встретить КНП. – Baig