<? phpukraine СТАТТІ
Пошук по платформі

Статті про Symfony українською

Dependency injection, Doctrine, Messenger і межі шарів. Матеріали для тих, хто веде великі Symfony-застосунки.

НАЙНОВІША SYMFONY 4 вересня 2026

Теговані сервіси й compiler passes: розширення без правки чужого коду

Точка розширення в Symfony — це не інтерфейс і не абстрактний клас, а тег у контейнері. Розбираємо, як тег перетворюється на `iterable` чи `ServiceLocator` у конструкторі, коли атрибутів уже не вистачає і треба писати compiler pass, у якому порядку проходи виконуються, чому ваш сервіс зникає до того, як пас до нього дійде, і як усе це дебажити через `debug:container`.

РP Редакція phpukraine · 9 хв читання
2 статті
SYMFONY 4 вересня 2026 Теговані сервіси й compiler passes: розширення без правки чужого коду Точка розширення в Symfony — це не інтерфейс і не абстрактний клас, а тег у контейнері. Розбираємо, як тег перетворюється на `iterable` чи `ServiceLocator` у конструкторі, коли атрибутів уже не вистачає і треба писати compiler pass, у якому порядку проходи виконуються, чому ваш сервіс зникає до того, як пас до нього дійде, і як усе це дебажити через `debug:container`. РP Редакція phpukraine · 9 хв ·DI-контейнер ·Compiler passes SYMFONY 3 вересня 2026 Messenger і outbox: як не втратити подію між транзакцією і брокером Класична дірка: сутність збережена, а повідомлення в брокер не пішло — або пішло, а транзакція відкотилась. Symfony Messenger вміє закривати її без окремої бібліотеки: Doctrine transport пише повідомлення тим самим з'єднанням, що й ваші сутності, тож INSERT потрапляє в ту саму транзакцію. Розбираємо конфіг, ретраї, failed transport, дедуплікацію на боці споживача і випадки, коли весь цей апарат вам не потрібен. РP Редакція phpukraine · 9 хв ·Messenger ·Outbox ·Doctrine