Symfony2 регистрирует 404 ошибки - PullRequest
1 голос
/ 16 августа 2011

Мне нужно иметь возможность войти / получить электронное письмо при возникновении ошибки 404.В документации я вижу, как настроить новый шаблон для этих ошибок, но как я могу поймать их в первую очередь в моем контроллере, чтобы я мог реализовать логику регистрации / отправки электронной почты?

1 Ответ

1 голос
/ 17 августа 2011

Может быть, добавление прослушивателя событий для прослушивания события kernel.exception сделает это?Проверьте http://symfony.com/doc/current/book/internals.html#kernel-exception-event вместе с http://symfony.com/doc/current/reference/dic_tags.html#dic-tags-kernel-event-listener

Небольшой пример:

1) Создайте пользовательский прослушиватель

//bundles/Acme/AcmeBundle/Listener/CustomListener.php

namespace Acme\AcmeBundle\Listener;
use Symfony\Component\EventDispatcher\Event;

public class CustomListener {
    public function onKernelException(Event $event) {
        //Get hold of the exception
        $exception = $event->getException();
        //Do the logging
        // ...
    }
}

2) Добавьте прослушиватель вВаша конфигурация

//config.yml
services:
    kernel.listener.your_listener_name:
        class: Acme\AcmeBundle\Listener\CustomListener
        tags:
            - { name: kernel.event_listener, event: kernel.exception, method: onKernelException }

Чтобы получить доступ к службам журналирования или рассылки (Swiftmailer), вы можете рассмотреть возможность их внедрения в прослушиватель (http://symfony.com/doc/current/book/service_container.html#referencing-injecting-services)

...