После написания ServerRequest и Response пора рассмотреть случаи, когда нам понадобится модификация запросов и ответов для служебных целей. Сегодня этим и займёмся.
Поговорим про работу PHP с примитивами и объектами. Рассмотрим возможные проблемы и риски использования изменяемых объектов с сеттерами для запроса и ответа. Расскажем про иммутабельность и напишем надёжный код, избавленный от этих рисков.
Заодно упростим код формирования ответа и добавим поддержку множественных HTTP-заголовков.
- 00:00:14 Постановка задачи
- 00:01:08 Повтор служебного кода
- 00:02:06 Постпроцессинг ответа
- 00:04:17 Fluent Interface для сеттеров
- 00:06:35 Неожиданные эффекты сеттера
- 00:08:21 Работа PHP с примитивами
- 00:11:55 Копирование значения при присваивании
- 00:12:35 Оптимизация Copy on Write
- 00:14:47 Объекты и указатели
- 00:16:56 Значения и указатели
- 00:18:31 Доступ к единому объекту
- 00:20:40 Создание нового значения
- 00:21:36 Явное клонирование
- 00:22:03 Более сложная логика
- 00:23:14 Уязвимость после проверки
- 00:24:27 Необходимость клонирования
- 00:25:01 Уязвимость прямой модификации
- 00:26:07 Проблемы от мутабельности
- 00:27:12 Пересоздание вместо модификации
- 00:29:18 Удобная фабрика
- 00:31:27 Альтернативный вариант
- 00:32:25 Доступ к полям внутри класса
- 00:35:26 Компромиссное нарушение инкапсуляции
- 00:36:50 Неизменяемость или иммутабельность
- 00:37:21 Работа с DataTime
- 00:39:08 Компромисс производительности
- 00:41:33 Иммутабельный Response
- 00:43:27 Необязательные параметры конструктора
- 00:45:16 Упрощение записи тела ответа
- 00:47:41 Множественные HTTP-заголовки
- 00:50:34 Повторы заголовков в header
- 00:51:34 Множественные заголовки запроса
- 00:56:53 Препроцессинг запроса
- 01:00:28 Обзор результата
- 01:02:41 Что дальше
В следующем эпизоде рассмотрим вопрос повторного использования нашего кода и интерфейсы.
Скрытый контент (код, слайды, ...) для подписчиков.
Открыть →Чтобы не пропускать новые эпизоды подпишитесь на наш канал @deworkerpro в Telegram

Спасибо!
Или войти через: