
ActiveRecord в Yii 2: цена абстракции на ревью кода
ActiveRecord в Yii 2 удобен, пока не встречается с циклом на тысячу записей. Разбираем, во что превращаются find() и with() в SQL, и какие места приложения ловить на ревью.

ActiveRecord в Yii 2 удобен, пока не встречается с циклом на тысячу записей. Разбираем, во что превращаются find() и with() в SQL, и какие места приложения ловить на ревью.

Список товаров грузился 40 мс на 20 записях и 2,8 секунды на 500 — при этом сам SQL отрабатывал за 12 мс. Разбираем, где ActiveRecord в Yii 2 съедает время и память под реальной нагрузкой.

Виджет удобно вынести в шаблон и забыть. Но GridView на 500 строк, вложенные виджеты и ActiveForm без кеша превращают удобство в лишние запросы и тормоза рендера. Разбираем приёмы, которые держат виджеты управляемыми.

Каждый вызов save() и find() в Yii 2 — это цепочка событий, гидратации объектов и ленивых запросов. Разбираем, где ActiveRecord тратит время и память и когда его абстракция обходится дорого.

Разбор частых промахов при работе с контейнером зависимостей в Yii 2: от синглтонов, которые оказались не синглтонами, до циклических зависимостей и утечек состояния между запросами.

Модуль в Yii 2 — не единственный способ разделить приложение на части. Разбираем, где модуль оправдан, а где хватит неймспейса, и чем платите за каждый вариант.

Консольная команда, которая тихо падала на проде каждую ночь, показала три типичные ошибки в работе с Yii2 console: незакрытые транзакции, утечку памяти в цикле и неверные коды возврата.

Как кешировать в Yii2 так, чтобы не отдавать пользователю устаревшие данные: кеш данных, зависимости, фрагментный кеш и почему TAG_DEPENDENCY решает больше, чем время жизни.

Что проверить в REST API на Yii2 до релиза: сериализация, аутентификация, лимиты запросов, версионирование и обработка ошибок. Разбор частых мест, где контроллеры отдают лишнее или падают под нагрузкой.

Роли, разрешения и правила в Yii2 через authManager. Разбираем, когда хватает простой проверки, а когда нужны бизнес-правила, и на чём чаще всего спотыкаются при переходе с ролей в базе на кэш.

Обработчик, который не срабатывает, утечка памяти при отписке через анонимную функцию, событие, вызванное в конструкторе, — разбираем ошибки при работе с событиями в Yii 2 и как их чинить.

Как переиспользовать логику через behaviors в Yii 2 без наследования и трейтов: подключение событий, виртуальные свойства, порядок обработчиков и типичные грабли с приоритетами.