Этот вопрос немного сложно объяснить, но я буду стараться изо всех сил.
Скажем, я создаю сайт агрегатора добавления вакансий. Для этого у меня есть 10 рабочих мест, которые я буду сканировать, анализировать HTML
и получить все соки.
Теперь, так как каждый шаблон сайтов, URL и количество информации, которое они содержат, уникальны, что-то подсказывает мне часть сканирования
должны быть организованы отдельно.
Обычно я мог бы собрать все это в
class CrawlerController extends Controller {
public function fooDotComAction(){
}
public function barDotNetAction(){
}
}
Вы можете видеть, что выше все еще лучше, чем сбросить всю мою логику сканера в DefaultController,
но даже мой пример не кажется эффективным или модульным.
Это кажется плохой практикой, я брожу, если есть какая-то особенность в Symfony, которая
обеспечивает реализацию или руководство для таких проблем.
Ваш вопрос слишком широкий, но вы нашли шаблон проектирования, который будет соответствовать вашим потребностям, а затем примените его. Вам нужно будет создать класс php и объявить их как сервисы.
Symfony продвигает идеи сервис-ориентированной архитектуры и предлагает мощное решение для разделения интересов: Компонент внедрения зависимости. Короче говоря, этот компонент обеспечивает реализация сервисного контейнера: инструмент для настройки, привязки и создания отдельных сервисных объектов.
Ваш бизнес-код будет содержаться в доменных службах, а ваш контроллер просто организует ввод и вывод и вызовет доменные службы
проверять, выписываться https://codereviewvideos.com/blog/symfony-compiler-pass-tutorial/
и 2 связанных видео и объяснения. (1, 2)
он покажет вам, как вы можете, чистым способом, отделить каждый «сканер», используя службы с тегами и проход компилятора, который я считать был бы чистый способ сделать это.