PHP8.4 + Yii2: руководство для backend-разработчика

Практический курс о том, как писать backend на Yii2 средствами PHP 8.4. Двадцать глав от установки окружения до деплоя и отката релиза, один сквозной проект — REST API сервиса аренды инструмента RentPoint. Курс для разработчиков, которые попали в Yii2-проект и хотят писать в нём современный, тестируемый и безопасный…
Средний уровень
4–6 часов в неделю

Чему вы научитесь

  • Проектировать 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-разработчиков уровня junior+ и middle, которые работают или собираются работать с Yii2. Типичная ситуация: вы пришли в проект, где фреймворк выбран давно, кода много, а решения принимались ещё в эпоху PHP 5.6 — и нужно понять, как писать в нём современно и не сломать работающее. Он подойдёт и тем, кто знает другой PHP-фреймворк и хочет разобраться в Yii2 быстро, по существу и без обзорных пересказов документации. Курс не подойдёт, если вы никогда не писали на PHP: базового синтаксиса здесь не будет, третья и четвёртая главы — это быстрый разбор возможностей PHP 8.4 в контексте backend, а не введение в язык. Не подойдёт он и тем, кто ищет материал по фронтенду или по классическим сайтам на Yii2 с шаблонами и виджетами.

Начальные требования

  • Опыт написания кода на PHP: функции, классы, композер-зависимости
  • Понимание HTTP на уровне методов, кодов ответа и заголовков
  • Базовый SQL: SELECT, JOIN, индексы
  • Умение работать в терминале
  • Установленные Docker и Docker Compose — всё окружение поднимается ими, локальные PHP и PostgreSQL не нужны

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

Программа курса

В курс входят

  • 126 уроков
  • 133 теста
загружаем...

Наши преподаватели

Что вы получаете

  • Сквозной проект RentPoint, который собирается по шагам от первого эндпоинта до готового к деплою API
  • Разборы внутренностей Yii2 по исходному коду фреймворка, а не по пересказу документации
  • Готовые конфигурации: Dockerfile, nginx, PHP-FPM, Docker Compose, CI-пайплайн
  • Скрипты деплоя, отката и дым-тестов, которые можно перенести в свой проект
  • Чек-листы: безопасный релиз, готовность к продакшену, кэширование, набор тестов
  • Тестовые задачи в конце глав с объяснением, почему верный ответ верен

Сколько стоит обучение

999 ₽
Вы попробовали и поняли, что вам сейчас не подходит этот курс? Ничего страшного, мы вернём вам деньги в течение 30-ти дней после покупки.

Часто задаваемые вопросы

Расскажите о курсе друзьям