2017-02-22 18 views
0

Я хотел бы знать, что это лучший способ глобальная функция в Symfony 3.tBest способ создания глобальной функции в Symfony

Я возьму пример: На моем сайте, вы можете подписаться на рассылку новостей. Когда вы это сделаете, он отправит вам письмо, чтобы поблагодарить вас. Пользователь может сделать это на многих страницах.

Поэтому я хотел бы создать его один раз и использовать sending mail function во всех необходимых ему контроллерах.

Должен ли я создать его как класс в приложении, или мне нужно создать пакет специально для него? Я нашел этот ответ, но не уверен, что он лучший: Symfony2 global functions

+1

Я бы определенно придерживался ответа на вопрос, с которым вы связались. Мое общее правило состоит в том, чтобы иметь сервис, если функция имеет какую-либо (вообще) зависимость от других функций (например, других служб), а если нет, то функция полезности {{public static function}} будет работать нормально. –

+1

Отлично, это тот ответ, который мне нужен, спасибо! Имеет ли значение иметь много услуг, даже если все они выполняют 1 или 2 функции? Или лучше создать тот, который содержит все функции? – Destunk

+1

@DesTunk Лучше иметь множество услуг с небольшим количеством ответов. Вы улучшите свою проверку кода и поддерживаемость. Пример: NewsletterMailSender UserProvider COmmandValidator .... – goto

ответ

4

Лучший способ сделать это - Services and Service Container. Просто создайте необходимый сервис и введите его в контроллер или используйте $this->get('your.service.name')->... в контроллере.