Задонатить и смотреть →
Открой безлимитный доступ к 100+ полезных скринкастов и получай скидки на все предстоящие мероприятия

Данные запроса и ServerRequest

В прошлом эпизоде мы поняли, что прямая работа с суперглобальными массивами привязывает нас к конкретному серверу и неудобна при тестировании. Сегодня от этого перейдём к внедрению серверонезависимой структуры ServerRequest. Напишем для неё фабрику и для удобства перейдём на объекты-значения вместо скалярных полей:

  • 00:00:30 - Явная передача значений
  • 00:02:58 - Особенность работы с телом запроса
  • 00:04:51 - Группировка параметров в структуру
  • 00:07:12 - Отвязка заголовков от PHP-FPM
  • 00:09:19 - Полная информация о запросе
  • 00:10:32 - Отдельная структура ServerRequest
  • 00:14:09 - Переход к классу
  • 00:16:16 - Фабрика по заполнению из глобальных массивов
  • 00:17:16 - Тест для класса запроса
  • 00:18:00 - Другие HTTP-заголовки
  • 00:18:38 - Автосчитывание заголовков
  • 00:20:06 - Как протестировать фабрику
  • 00:23:45 - Неудобство строковых значений
  • 00:25:52 - Объект-значение Uri для адреса
  • 00:29:40 - Сложности при проксировании
  • 00:32:13 - Экономная обработка файлов
  • 00:33:53 - Поток Stream для файлов
  • 00:35:27 - Управление курсором при чтении
  • 00:41:13 - Обзор результата
Скрытый контент (код, слайды, ...) для подписчиков. Открыть →
Дмитрий Елисеев
elisdn.ru
Комментарии (6)
Максим

Спасибо! Ждал продолжения этой серии.

Ответить
Aёct'ann

Спасибо!

Ответить
Aёct'ann

А зачем мы в классе Uri добавили магический метод для склейки всех фрагментов uri в одно целое, когда, по сути, можем просто обратно отдавать оригинальный uri, который нам пришел в конструкторе?

По логике получается, что нам пришла строка, мы ее разбили на составляющие, а если нам нужно получить оригинальную строку - так можно ее и вернуть, а не склеивать по отдельности. Или не так?

Ответить
Дмитрий Елисеев

Если у нас в Uri только геттеры, то можно сохранить исходную строку и возвращать её. Но если там появятся модификаторы вроде $uri->setPort(81) или $uri->withPort(81), то тогда в каждом из них придётся переклеивать эту строку, что неудобно.

Ответить
Баке

Жаль что нет исходного кода для каждого урока

Ответить
Артём

исходный код доступен на github

Ответить
Зарегистрируйтесь или войдите чтобы оставить комментарий

Или войти через:

Google
GitHub
Yandex
MailRu