PSR-7 фреймворк: Контроллеры и маршрутизация
Второй урок серии скринкастов по изучению PSR-7 микрофреймворков в PHP. Сегодня рассмотрим разделение на страницы и разделы сайта путём создания контроллеров и сопутствующей системы маршрутизации:
Для более комфортного просмотра откройте скринкаст на YouTube, разверните видео до оригинального размера значком и поставьте скорость 1,75:
Содержание:
- 00:00:00 - Вступление, повторение выводов предыдущего урока
- 00:08:34 - Составление плана, создание новых страниц
- 00:11:57 - Избавление от копипасты, Postprocessing
- 00:15:43 - Prepocessing
- 00:20:37 - Обзор стадий выполнения
- 00:24:25 - Примитивная маршрутизация
- 00:26:15 - Экшен блога, маршрутизация блога
- 00:28:30 - Вынос экшена в файл
- 00:31:56 - Экшен как анонимная функция
- 00:34:48 - Экшен поста блога
- 00:40:56 - Суть контроллера
- 00:48:46 - Система маршрутизации, теория
- 00:58:22 - Коллекция маршрутов, теория
- 01:01:51 - Генерация адресов, теория
- 01:06:40 - Упрощённый синтаксис маршрутов, теория
- 01:12:46 - RouterTest
- 01:19:01 - RouteCollection
- 01:21:20 - Route
- 01:22:39 - Router
- 01:23:55 - Result
- 01:24:55 - Методы match и generate
- 01:26:18 - RequestNotMatchedExeption
- 01:28:07 - RouteNotFoundExeption
- 01:28:28 - Полноценный маршрутизатор, регулярные выражения
- 01:41:43 - Реализация маршрутизатора (Initialization)
- 01:43:30 - Реализация маршрутизатора (Running)
- 01:46:29 - Рефакторинг, GRASP
- 01:52:08 - Метод addRoute
- 01:55:16 - Интерфейс Route
- 01:57:28 - Вынесение экшенов в классы
- 02:02:07 - Группировка и разделение контроллеров
- 02:05:38 - Объект как функция
- 02:09:15 - HelloActionTest
- 02:10:44 - Ленивое создание объектов экшенов
- 02:15:28 - Добавление ActionResolver
- 02:21:21 - Готовые маршрутизаторы, теория
- 02:33:57 - Подключение Aura.Router
- 02:36:08 - Проблема перехода с одного маршрутизатора на другой
- 02:44:06 - AuraRouterAdapter
- 02:48:43 - Сила абстракции
- 02:52:33 - Выводы
Остальные части:
- Структура и работа с HTTP
- Контроллеры и маршрутизация
- Middleware и Pipeline
- Контейнер внедрения зависимостей
- Шаблонизаторы и вёрстка
- Обновление до PSR-15, вывод ошибок и логирование
- Консольные команды, базы данных и ресурсы
Задавайте вопросы в комментариях. Заранее спасибо и до встречи в следующем видео!
Чувак, спасибо тебе большое. Просто спасибо.
Дмитрий, здравствуйте. А не могли бы Вы в одном из будущих вебинаров немного уделить времени обработке ошибок, и их правильному выбрасыванию?
И вроде бы казалось, что там про ошибки и исключения то особенно рассказывать. Ан нет, тут есть нюансы. В общем, был бы благодарен за освещение этого вопроса.
Дмитрий, огромное спасибо за Ваш труд. Это просто царский новогодний подарок
Дмитрий, а что будет включать в себя мастер-класс по Laravel?
Когда примерно остальные части ждать?)
Думаю в следующих уроках в любом случае будет работа с ошибками)
На всякий случай оставлю здесь, вроде интересный паттерн.
https://habrahabr.ru/post/279501/
Глупый подход, демонстрирующий полное непонимание исключений со стороны автора. Не нужно это здесь.
спасибо
прикройте дебаг панельку на продакшне (ссылка на ваш сайт) =)
Спасибо!!!
Когда будет стартовать мастер-класс по Laravel ?
Огромное спасибо за курс, очень не хватает подхода "снизу" к изучению базовых принципов работы фреймворков да и вообще уроков для среднего уровня.
Когда услышал, про адаптацию через интерфейс, услышал "Ding!" и понял, что получил LvLup.
Дмитрий, Ваш платный курс по Yii сейчас актуален? Меня интересует не столько Yii, сколько общие знания, т.к. опыт в программировании у меня всего год. Искренне хочется поддержать Ваш труд монетой.
Да, актуален, так как там говорим про общую архитектуру без привязки конкретно к Yii.
Дима, привет!
После перехода на AuraRouter тесты в testGenerateMissingAttributes не проходят. Почему то $this->expectException(RouteNotFoundException::class); ругается:
1) Tests\Framework\Http\RouterTest::testGenerateMissingAttributes
Failed asserting that exception of type "Framework\Http\Router\Exception\RouteNotFoundException" is thrown.