Symfony Framework
О чём курс
Преподаватели онлайн-школы OTUS Сергей Петров, Николай Широков, Михаил Каморин, Олег Мельник и Александр Пряхин разбирают разработку веб-приложений на фреймворке Symfony для решения enterprise-задач. Вы изучите архитектуру компонентов, механизмы маршрутизации, работу с базами данных через ORM, реализацию Stateless API и интеграцию со сторонними сервисами.
Symfony используется как фундамент для крупных систем, включая Drupal и phpBB, а также лежит в основе фреймворка Laravel. В ходе обучения вы примените инструментарий фреймворка на практике: в качестве проекта для разработки предлагается реализовать таск-трекер или сервис бронирования билетов в кинотеатре.
Для кого
Материал ориентирован на разработчиков с опытом работы на PHP от двух лет, планирующих перейти на уровень middle+ и senior+.
Для прохождения курса необходимы предварительные навыки:
- уверенное владение PHP 8 и выше;
- знание объектно-ориентированного программирования, паттернов проектирования и архитектуры MVC;
- опыт выполнения базовых операций с базами данных;
- умение настраивать рабочую среду разработки;
- практический опыт работы с виртуальными машинами и Docker.
Что внутри
Программа охватывает полный цикл создания и поддержки серверного приложения на базе компонентов Symfony:
- Начало работы и базовые инструменты: внедрение зависимостей (Dependency Injection), конфигурация сервисов, Doctrine ORM, управление миграциями и расширенные возможности базы данных.
- Маршрутизация и сетевой слой: контроллеры, компонент HttpFoundation, валидация входящих данных через DTO, шаблонизатор Twig, формы Symfony, аутентификация и авторизация, построение Stateless API, REST-сервисы с помощью API Platform и работа с GraphQL.
- Взаимодействие со сторонними подсистемами: настройка логирования, мониторинг, кэширование, организация асинхронных очередей и полнотекстовый поиск с использованием Elastica.
- Тестирование и доставка: написание модульных и интеграционных тестов, создание консольных команд и документирование API через NelmioApiDocBundle.
- Продвинутые практики: разработка собственных бандлов, декомпозиция монолита, применение шины сообщений Symfony Messenger, принципы предметно-ориентированного проектирования (DDD) и варианты развёртывания приложения.
Что даёт курс
После завершения программы вы сможете:
- применять возможности Symfony при проектировании и реализации коммерческих проектов;
- выстраивать архитектуру безопасности и контролировать доступ к ресурсам приложения;
- покрывать функционал автоматическими тестами и настраивать мониторинг его работы;
- грамотно использовать встроенные инструменты и библиотеки экосистемы;
- разворачивать готовый сервис в различных инфраструктурных окружениях.
Программа обучения
Знакомство с фреймворком. Пишем базовый функционал
- Тема 1: Вводное занятие и выбор проектной работы
- Тема 2: Установка и «Hello, world» // ДЗ
- Тема 3: DI и сервисы
- Тема 4: Doctrine ORM
- Тема 5: Doctrine Migrations // ДЗ
- Тема 6: Doctrine. Дополнительные возможности
Маршрутизация и HttpFoundation
- Тема 1: Контроллеры и маршрутизация
- Тема 2: Компонент HttpFoundation
- Тема 3: Слой DTO. Валидация // ДЗ
- Тема 4: Twig и Symfony Forms
- Тема 5: Авторизация и аутентификация
- Тема 6: Stateless API // ДЗ
- Тема 7: REST-приложения и API Platform
- Тема 8: Внедряем GraphQL // ДЗ
Интеграция с другими системами
- Тема 1: Логирование и мониторинг
- Тема 2: Кэширование
- Тема 3: Очереди: начало
- Тема 4: Очереди: расширенные возможности // ДЗ
- Тема 5: Полнотекстовый поиск, Elastica
Тестирование и развёртывание
- Тема 1: Unit-тестирование
- Тема 2: Консольные команды в Symfony
- Тема 3: Интеграционное тестирование // ДЗ
- Тема 4: NelmioApiDocBundle и документация API
Symfony: Advanced practices
- Тема 1: Symfony Bundles и пакеты
- Тема 2: Декомпозируем приложение // ДЗ
- Тема 3: Symfony Messenger
- Тема 4: DDD в Symfony, часть 2 // ДЗ
- Тема 5: DDD в Symfony, часть 1
- Тема 5: Развёртывание приложения // ДЗ
Теги курса
Отзывов пока нет. Будьте первым!
Этот курс сейчас в процессе организации складчины. Нажмите кнопку «Записаться» и ожидайте старта — вам придёт уведомление. Когда складчина стартует, в карточке курса будет указан актуальный взнос. Текущая цена пока в процессе формирования и может отличаться от финальной.
Да, мы стремимся, чтобы финальный взнос был не больше ≈10% от оригинальной цены курса. Чем больше участников записывается в складчину, тем ниже выходит взнос для каждого.
Нажмите кнопку «Записаться» и авторизуйтесь на сайте через email (через ту же почту, которую будете использовать для входа). В личном кабинете вас будут ждать инструкции, как пригласить других участников — чем больше людей записалось, тем быстрее стартует складчина и тем ниже взнос. Как только складчина готова к приобретению, вам придёт уведомление.