Добавление роли пользователя. Установка роли по умолчанию при регистрации и смена администратором. Команда удаления неактивного пользователя.
Написание команды двухшаговой смены email-адреса в кабинете пользователя с подтверждением по ссылке с токеном в письме.
Реализация команды установки нового пароля с проверкой текущего. Инъекция сервисов в метод. Тестирование зависимых объектов. Стабы и моки.
Реализация двухшагового восстановления пароля с подтверждением операции по электронной почте. Защита от спама и возможной перегрузки сервера.
Реализация команды регистрации через социальные сети. Именованные конструкторы объектов. Привязка соцсети к текущему профилю.
Добавление статуса ожидания и активности пользователя. Реализация команды подтверждения регистрации по токену из ссылки в электронном письме.
Free
Моделирование юзкейса запроса регистрации по email. Декомпозиция объектов. Абстрактные типы данных. Проработка сущностей и сервисов через Unit-тесты.
Free
Анализ Use Cases взаимодействия с модулем аутетнификации. Выделение команд Command и запросов Query. Принцип CQS разделения операций.
Моделирование по философии Domain Driven Design. Понятие доменной модели. Исследование предметной области и выделение ограниченных контекстов.
Установка и настройка PHPUnit. Написание Unit-тестов. Создание инфраструктуры функциональных тестов для API. Анализ тестового покрытия.
Проверка корректности кода с PHPLint. Валидация и корректировка стиля кода с CodeSniffer. Подключение статических анализаторов.
Установка Xdebug в Docker-образы. Настройка отладки консольных скриптов. Подключение к PhpStorm для отладки веб-скриптов в PHP-FPM.
Оптимизация Docker-образов для production через использование кеширования и мультистадийный билдинг.
Подготовка структуры директорий API. Добавление образа PHP-CLI. Установка Slim Framework. Ускорение установки в Composer.
Free
Автоматизация серверной инфраструктуры. Автоматическая установка Docker и Compose на виртуальную машину через Ansible. Подключение сертификатов Let's Encrypt.
Подъём девелоперской версии сайта с Docker. Построение сетевой структуры. Сборка образов для продакшена и первый деплой.
Free
Чем является Docker и чем не является. Удобство использования Docker для локальной разработки и для продакшена.
Free
Причины выбора микрофреймворка и его отличия от классических фреймворков. Почему мы используем Slim и React.
Free
Постановка задачи по разработке будущего проекта и определение используемых подходов. Предполагаемая структура проекта.
Использование событий объекта для снижения связанности кода. Способы генерации событий и пути подписки на них сторонних слушателей.
Free
Использование пользовательских заголовков для разных задач.
Улучшения компонента перед публикацией. Идеи по подключению сторонних библиотек. Обзор результата.
Free
Дополнительные серверные и клиентские заголовки. Информация о сервере, сжатие контента и отказ в обслуживании.
Разработка прокси-объекта для гибкого настраиваемого кеширования результатов геолокации.
Отлов ошибок проблем с соединением. Вынесение логирования в отдельный обработчик.
Free
Рефакторинг для подключения нескольких провайдеров геоданных. Усовершенствование алгоритма выбора.
Free
Разделение ответственностей и делегирование. Вынос изменяемого кода во вспомогательные компоненты.
Free
Постановка задачи. Проектирование компонента геолокации через тестирование и разработка абстрактных типов данных.
Free
Заголовки для настройки браузера для обеспечения безопасности при работе с внешними ресурсами
Подходы к контролю исключительных ситуаций. Использование исключений и корректный ох отлов.
Free
Использование Origin-заголовков для возможности из JavaScript осуществлять Ajax-запросы к API на другом домене.
Free
Корректное проектирование методов для описания поведения объекта. Инкапсуляция для контроля внутреннего состояния.
Free
Написание HTTP-заголовков для управления кэшированием файлов и страниц. Работа с локальным и публичным кэшем.
Free
Использование конструкторов для инициализации объектов. Внедрение зависимостей.
Free
Исследование методов аутентификации пользователя для сайтов и API. Аутентификация по протоколу oAuth2.
Free
Подходы к хранению состояния сеанса на клиенте и на сервере. Требования философии REST к идентификации запросов.
Free
Какими способами производится взаимодействие объектов в ООП. Чем ООП полезно при моделировании реального мира.
Free
HTTP-заголовки для описания формата контента со стороны клиента и сервера. Загрузка файлов и скачивание по фрагментам.
Free
Как производится запрос и какие результаты возвращает сервер. Какие запросы являются безопасными.
Free
Кто такие сервер и клиент и как осуществляется запрос и возвращается ответ при HTTP-взаимодействии.
Скоро в эфире
Скоро
6 Поля и свойства
Нужны ли геттеры и сеттеры объектам. Чем объект отличается от структуры данных. Какая роль DTO и стоит ли ими злоупотреблять.
Скоро
1 Суть компонентного фреймворка
Определение компонентного фреймворка. Инверсия управления как ключевое отличие фреймворка от библиотеки.
Скоро
2 Структура проекта
Подготовка структуры файлов и директорий проекта. Создание заглушки. Установка и проверка работы сервера.
Скоро
21 Отправка электронной почты
Реализация отправки электронных писем по протоколу SMTP. Подключение почтовика для локальной разработки. Подключение шаблонизатора для написания шаблонов.
Скоро
20 Подключение БД и выбор ORM
Подключение базы данных с Docker. Работа с переменными окружения. Мэппинг сущностей на БД. Написание и генерация миграций. Выбор ORM и регистрация в DI контейнере.
Скоро
22 Написание и тестирование контроллеров
Написание контроллеров регистрациии и их тестирование Feature-тестами. Отправка письма подтверждения регистрации. Тестирование исходящих писем через локальный эмулятор почтовой системы.
Тип