
Очереди в Yii2: рабочие приёмы, чтобы не потерять задачи
Как устроен yii2-queue, чем отличаются драйверы, где задачи молча теряются и как настроить очередь так, чтобы воркер не падал на первой же необработанной ошибке.

Как устроен yii2-queue, чем отличаются драйверы, где задачи молча теряются и как настроить очередь так, чтобы воркер не падал на первой же необработанной ошибке.

Джобы застревают, воркеры едят память, а после деплоя из очереди сыплются фатальные ошибки. Разбираем частые промахи при работе с yii2-queue и как их не допустить.

Как писать unit-, functional- и acceptance-тесты в Yii 2 через Codeception: где очищать базу между тестами, чем фикстуры лучше моков и почему functional-тесты падают там, где unit проходят.

Один и тот же контейнер в Yii 2 можно настроить четырьмя способами — от массива в конфиге до фабрики-замыкания. Разбираем, что выигрываешь и чем платишь за каждый.

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

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

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

Виджет в Yii 2 живёт дольше одного HTTP-запроса, если не следить за состоянием, ассетами и экранированием. Разбираем ошибки, из-за которых виджет ломается тихо и незаметно.

Виджет собирается за час, а потом ломает страницу лишними SQL-запросами и дублирует ассеты на каждой итерации цикла. Разбираем, что проверить перед тем, как выкатывать свой Widget в бой.

Как собрать модуль в Yii 2 из файлов, зарегистрировать его в конфигурации и заставить работать маршруты вида /admin/user/index — с реальной структурой каталогов и типичными ошибками bootstrap.

Как писать консольные контроллеры в Yii2 так, чтобы они не падали в cron, корректно возвращали код завершения и не жрали память на больших выборках.

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