Устройство HTTP-фреймворка

Написание PSR-совместимого HTTP-микрофреймворка. Обновлённая версия серии Создание PSR-фреймворка.

Free28:13
Определение и суть компонентного HTTP-фреймворка. Место фреймворка и библиотек в потоке управления. Совместимость фреймворков и рекомендации PSR.
1:14:21
Установка сервера Nginx c PHP-FPM. Структура файлов и директорий. Автозагрузка классов с Composer. Установка и настройка PHPUnit.
Free2:30:43
Работа HTTP-сервера вроде Apache и Nginx с PHP по протоколам CGI и FastCGI. Переменные окружения и потоки ввода и вывода. Асинхронные PHP-серверы.
29:04
Получение параметров HTTP-запроса и отправка ответа через SAPI при работе через PHP-FPM. Написание функции определения текущего языка.
19:03
Проблемы кода с прямым обращением к суперглобальным массивам и глобальным переменным. Неуниверсальность и неудобство тестирования. Побочные эффекты и чистые функции.
42:41
Абстракция для серверного запроса для отхода от привязки к PHP-FPM. Переход от суперглобальных массивов к серверонезависимой структуре ServerRequest.
16:49
Избавление от зависимости от сервера PHP-FPM при отправке HTTP-ответа. Экономная отдача больших файлов средствами PHP через Stream.
1:03:24
Препроцессинг запроса и постпроцессинг ответа. Потенциальные проблемы изменяемых объектов и их решение через иммутабельность. Упрощение кода.
59:22
Повторное использование кода в разных проектах. Инверсия зависимостей для выноса кода в компонент. Выделение общих интерфейсов и переход на PSR-7.
1:13:04
Решение проблемы зависимости от создания объектов из конкретных классов. Инверсия создания зависимых объектов и переход на PSR-17