Для начала добавьте пакеты зависимости:

Теперь добавьте новый пакет SonataNotificationBundle в ядро:

Затем добавьте эти пакеты в настройки отображения определения:

Настройка

Чтобы использовать SonataNotificationBundle, добавьте следующие строки в конфигурационный файл вашего приложения.

Доступные Backend:

  • sonata.notification.backend.runtime: прямой вызов, ни какой пользы, но полезен в целях тестирования
  • sonata.notification.backend.postpone: post-pone the messages to be dispatched on kernel.terminate
  • sonata.notification.backend.doctrine: использование базы данных для хранения сообщений, требуется фоновая задача для запуска и контролирования, правильная отправная точка для небольшого количества асинхронных задач
  • sonata.notification.backend.rabbitmq: использование движка RabbitMQ, для обработки сообщения, лучшая производительность

Вы можете отключить admin, если вам не нужно это:

Расширение пакета

В этот момент пакет функционален, но ещё не достаточно готов. Вам нужно сгенерировать корректные сущности для медиа:

Если вы задаете без параметров, файл будет сгенерирован в app/AplicationSonata…, но вы можете указать путь с помощью параметра dest --dest=src


Предупреждение: Команда будет генерировать область объектов в пространстве имен Aplication. Таким образом вы можете указать сущности ассоциированные с глобальным и общим пространством имен. Это будет сделать легче разделяя сущности, так как ваши модели позволят указать в глобальном пространстве имен. Например пользователь будет Application\Sonata\NotificationBundle\Entity\Message.

Теперь, добавьте новый пакет приложения в ядро: