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

Статті для PHP-розробників України

Технічні розбори, карʼєрні звіти й переклади документації. Кожен матеріал спирається на дані платформи: вакансії, вилки, банк питань, і на код, який можна запустити.

ФІЛЬТР Doctrine
Тег «Doctrine» це фільтр, а не сторінка: у пошук він не віддається, canonical лишається /articles. Найсильніші теги перетворимо на окремі хаби, коли під них набереться контент.
НАЙНОВІША ПРОДУКТИВНІСТЬ 12 вересня 2026

N+1 у Doctrine та Eloquent поруч: одна проблема, два набори інструментів

Ліниві звʼязки протікають однаково в обох ORM, а лагодяться по-різному: Eloquent добирає дані окремим запитом WHERE IN, Doctrine тягне їх fetch join'ом у той самий SQL. Три типові сценарії - список зі звʼязком, вкладені звʼязки й агрегати - з кодом до і після в Laravel 13 та Doctrine ORM 3.

РP Редакція phpukraine · 8 хв читання
2 статті
ПРОДУКТИВНІСТЬ 12 вересня 2026 N+1 у Doctrine та Eloquent поруч: одна проблема, два набори інструментів Ліниві звʼязки протікають однаково в обох ORM, а лагодяться по-різному: Eloquent добирає дані окремим запитом WHERE IN, Doctrine тягне їх fetch join'ом у той самий SQL. Три типові сценарії - список зі звʼязком, вкладені звʼязки й агрегати - з кодом до і після в Laravel 13 та Doctrine ORM 3. РP Редакція phpukraine · 8 хв ·N+1 ·Doctrine ·Eloquent SYMFONY 3 вересня 2026 Messenger і outbox: як не втратити подію між транзакцією і брокером Класична дірка: сутність збережена, а повідомлення в брокер не пішло — або пішло, а транзакція відкотилась. Symfony Messenger вміє закривати її без окремої бібліотеки: Doctrine transport пише повідомлення тим самим з'єднанням, що й ваші сутності, тож INSERT потрапляє в ту саму транзакцію. Розбираємо конфіг, ретраї, failed transport, дедуплікацію на боці споживача і випадки, коли весь цей апарат вам не потрібен. РP Редакція phpukraine · 9 хв ·Messenger ·Outbox ·Doctrine