Открой безлимитный доступ ко всем скринкастам и получай большие скидки на все наши мероприятия:
Бесплатный
0/ мес.

Ограниченный доступ
только к Free-видео

Активен
Подписчик
500/ мес.

Безлимитный доступ
ко всем скринкастам

Принимаем оплату российскими и иностранными картами, системами МИР Pay, Яндекс Pay и Tinkoff Pay.

Фабрики запросов и ответов PSR-17

После перехода на интерфейсы PSR-7 мы уже понимаем, как делать переносимыми функции, которые работают с переданным им Request-ом. Но пока не знаем, что делать с функциями, которые у себя создают ответ Response.

Поэтому помимо инверсии контроля за запуском приложения и инверсии зависимостей сегодня рассмотрим инверсию контроля за созданием зависимостей. Это нам позволит отвязаться от зависимости от конкретных классов и понять причины появления PSR-17.

Помимо этого рассмотрим заблуждение многих PHP-програмистов при написании анонимных функций. Почему класс для них назван Closure и являются ли все анонимные функции замыканиями.

  • 00:01:47 Зависимость от класса Response
  • 00:05:39 Подготовка кода
  • 00:07:17 Инверсия контроля запуска приложения
  • 00:10:00 Инверсия зависимостей компонентов
  • 00:10:27 Инверсия контроля за созданием зависимостей
  • 00:11:47 Приём заготовки Response
  • 00:13:12 Приём конфигурации
  • 00:16:41 Постоянные и непостоянные параметры
  • 00:18:06 Конфигурируемая функция
  • 00:18:50 Именованные и анонимные функции
  • 00:20:00 Отличие лямбды от замыкания
  • 00:22:43 Контекст текущего объекта
  • 00:27:47 Заблуждение PHP-программистов
  • 00:29:57 Конструкторы для функций
  • 00:34:25 Унификация вызовов
  • 00:36:06 Функциональный класс
  • 00:38:05 Неудобства передачи Response
  • 00:38:58 Использование фабрики
  • 00:43:26 Написание фабрик для HTTP Message
  • 00:48:34 Перемещение фабрики fromGlobals
  • 00:51:30 Вынесение общих интерфейсов
  • 00:53:03 Промежуточный итог
  • 00:54:19 Обзор PSR-17 HTTP Factories
  • 00:55:51 Переход на PSR-17
  • 00:59:55 Переход на готовую реализацию
  • 01:02:16 Использование в тестах
  • 01:03:45 Удаление устаревших настроек
  • 01:05:38 Хэлперы для заполнения контента
  • 01:09:03 Когда это уместно
  • 01:11:04 Обзор результата
Скрытый контент (код, слайды, ...) для подписчиков. Открыть →
Дмитрий Елисеев
elisdn.ru
Комментарии (7)
Владимир Перепеченко

Здравствуйте, Дмитрий

Отдельная благодарность за разоблачение мифов про closure/lambda! Это - мутная тема, плохо освещенная в интернетах.

Вообще, этот курс получился шикарным. Узнаю разные фишечки, о которых сам не догадался бы.

Плюс ваши вербальные формулировки и определения стали предельно чеканными и выверенными.

Вопрос: Я не понял разницы между request и server request. И, соответственно, между request factory и server request factory. Если она есть, то в чём?

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

Я не понял разницы между request и server request.

Request обычно описывает исходящий запрос, который мы отправляем через HTTP-клиент:

$request = $requestFactory->createRequest('GET', 'https ://api.vk.com/...');

$response = $httpClient->send($request);

А ServerRequest описывает входящий запрос, пришедший к нам на сарвер:

$request = ServerRequestFactory::gromGlobals($_SERVER, $_POST, $_FILES, ...);

echo $request->getMethod();

Отдельная благодарность за разоблачение мифов про closure/lambda! Это - мутная тема, плохо освещенная в интернетах.

Анонимки в PHP пришли из функциональных языков. Там эта тема освещена хорошо.

Ответить
Arunas

спасибо

Ответить
Герман

Большое спасибо, Дмитрий! Когда следующая серия?)

Ответить
Кирилл

Отличная серия) Для меня как новичка, просто супер!) Дмитрий, подскажите пожалуйста, планируется ли продолжение серии и когда ожидать выход новых видео?)

Ответить
Николай

Отличные скринкасты. Тоже присоединяюсь к вопросу о продолжении серии.

Ответить
Андрей

Небольшая опечатка в названиях глав эпизода: "Переход на PSR-15" вместо "Переход на PSR-17"

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

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

Yandex
MailRu
GitHub
Google