Чему вы научитесь
- Проектировать REST API на Yii2 с устойчивым контрактом ответа и понятными кодами ошибок
- Писать код на PHP 8.4 идиоматично и при этом совместимо с Yii2
- Выносить бизнес-логику из ActiveRecord в сервисы и покрывать её быстрыми тестами
- Настраивать аутентификацию по токенам и RBAC с проверками на уровне объектов
- Писать миграции, которые безопасно применять на работающей базе
- Находить и устранять N+1 и другие причины медленных ответов
- Выносить длительные операции в очередь и делать задачи идемпотентными
- Кэшировать данные так, чтобы не отдавать устаревшее и не терять деньги
- Интегрироваться с внешними API, переживая их таймауты и недоступность
- Собирать образ приложения, разворачивать его на сервере и откатывать релиз
О курсе
Yii2 живёт в продакшене тысяч компаний, но материалов, показывающих его вместе с современным PHP, почти нет. Типичный туториал предлагает Gii, CRUD в контроллере и логику внутри ActiveRecord — код, который работает ровно до первой нетривиальной задачи. Этот курс показывает другой путь: тот же фреймворк, но с enum-состояниями, readonly-DTO, сервисным слоем, внедрением зависимостей и тестами, которые выполняются за секунду.
Всё строится вокруг одного проекта. RentPoint — backend сервиса аренды строительного инструмента: каталог с фильтрами, бронирование с проверкой пересечения дат, выдача и приём оборудования, штрафы за просрочку, оплата через внешний шлюз, вложения в объектном хранилище. Проект растёт от первого эндпоинта в седьмой главе до системы с очередями, RBAC, кэшем и деплоем в двадцатой.
Что внутри
- Современный PHP 8.4 в контексте фреймворка: enum, readonly-классы, property hooks,
#[\SensitiveParameter], first-class callable — и места, где Yii2 их поддерживает, а где нет. - Внутренности Yii2 по исходникам: как
Component::__getнаходит поведение, что делаетBaseActiveRecord::__get, почемуActionFilter::beforeFilterвызывается именно так, какSerializerпревращает модель в JSON. - REST-слой целиком:
rest\Controller, сериализация, пагинация, сортировка, фильтрация, версионирование, стабильный контракт ответа. - Работа с данными: миграции, которые безопасно применять на живой базе, Query Builder, транзакции, ActiveRecord и его границы, диагностика N+1.
- Архитектура: сервисы вместо логики в моделях, DTO, репозитории, контейнер зависимостей, структура проекта, переживающая рост.
- Безопасность: токены, хеширование паролей, RBAC с правилами уровня объекта, rate limiting, mass assignment, CORS, работа с секретами.
- Фоновая часть:
yii2-queue, консольные команды, планировщик, идемпотентность задач и повторы после сбоя. - Кэш, загрузка файлов, S3-совместимое хранилище, клиенты внешних API с таймаутами, ретраями и circuit breaker.
- Тестирование: Codeception, три сюиты, фабрики вместо фикстур, матрица доступа, подмена внешних сервисов.
- Эксплуатация: multi-stage Dockerfile, nginx и PHP-FPM, compose-стенд, production-конфиг, деплой на VPS без Kubernetes, откат за минуту.
Как устроен материал
Уроки текстовые и код-ориентированные: разбор идёт по листингам, а не по пересказу документации. Там, где решение неочевидно, показаны оба варианта и названа цена каждого. Отдельное место занимают ошибки, которые действительно делают: гонка при бронировании, задача в очереди до COMMIT, кэш без инвалидации, trustedHosts со звёздочкой, миграция, блокирующая таблицу на две минуты.
Чего в курсе нет
Здесь нет фронтенда, шаблонов и виджетов Yii2 — курс целиком про API. Нет Kubernetes: развёртывание разбирается на одном сервере с Docker Compose.
Для кого этот курс
Начальные требования
- Опыт написания кода на PHP: функции, классы, композер-зависимости
- Понимание HTTP на уровне методов, кодов ответа и заголовков
- Базовый SQL:
SELECT,JOIN, индексы - Умение работать в терминале
- Установленные Docker и Docker Compose — всё окружение поднимается ими, локальные PHP и PostgreSQL не нужны
Опыт работы с Yii2 не требуется: фреймворк разбирается с нуля, но в предположении, что программировать вы уже умеете.
Программа курса
В курс входят
- 126 уроков
- 133 теста
Наши преподаватели
Что вы получаете
- Сквозной проект RentPoint, который собирается по шагам от первого эндпоинта до готового к деплою API
- Разборы внутренностей Yii2 по исходному коду фреймворка, а не по пересказу документации
- Готовые конфигурации: Dockerfile, nginx, PHP-FPM, Docker Compose, CI-пайплайн
- Скрипты деплоя, отката и дым-тестов, которые можно перенести в свой проект
- Чек-листы: безопасный релиз, готовность к продакшену, кэширование, набор тестов
- Тестовые задачи в конце глав с объяснением, почему верный ответ верен