Porto: Components [ Компоненты Контейнера ] ► Архитектурный шаблон Порто №4

20.03.2022
Обзор компонентов слоя контейнера ★ Request - Производит валидацию данных; Может проверить авторизацию; Дальше контроллера не уходит; ★ Controller - Получает данные; Вызывает Экшон; Формирует и возвращает ответ; Может быть вызван только эндпоинтом; Не содержит бизнес-логики; Не может вызывать Таски; Actions - Экшон реализует "сценарий использования" (use case), сам, либо с помощью Тасков; Может вызывать 1 и более Тасков; Может вызывать Таски других контейнеров; Может разбить бизнес-логику на 1 и более Sub-action; Должны обработать все ожидаемые исключения; Содержит только один метод - run(); Может принять объект request в качестве параметра; Может быть вызван из прослушивателя, команды и тп; Не может вызывать другие Экшоны; Не может быть вызван в Таске; * ★Tasks - Реализует небольшую часть бизнес-логики. Зачастую общую.; Один Таск = Одна ответственность; Должны вызываться только из Экшонов; Могут быть вызваны из других Контейнеров; Может содержать один метод run(), так и несколько других методов которые заменят концепцию флагов функций; Не может вызывать Экшоны; Не может вызывать другие Таски; Не может быть вызван из Контроллера; Не может принимать объект request; * ★ Sub-actions - Для устранения дублирования части бизнес-логики; Должны вызываться из Экшонов. Так же могут быть вызваны и в командах, прослушивателях и им подобных классах; Должны оперировать Тасками; Имеет один метод - run(); Не может вызвать другой Sub-action; Не может быть вызван в Контроллере или Таске; ★ Models - Не содержит бизнес-логику; 1 контейнер может содержать 1 и более Модель; * Эпизоды: 0:00 Начало 1:49 Обзор общей картины 15:25 Request (Запрос) 18:20 Controller (Контроллер) 32:10 Tasks (Задачи, они же Таски) 40:10 Models (Модели) 42:50 Необязательные компоненты 46:30 Смотрим псевдокод 47:15 Routes (Маршруты) 54:07 Говнокодик 57:00 DTO и проблемы именования 01:03:10 Рекомендации начинающим * #MahmoudZalt #porto #ddd #порто #компоненты_порто #laracasts * * Полезные ссылки: ► Порто (Porto): https://github.com/Mahmoudz/Porto ► Апиато (Apiato): http://apiato.io ► Автор Порто [ Mahmoud Zalt ]: http://zalt.me ► https://twitter.com/Mahmoud_Zalt/status/1347260555069894667 ► Плейлист курса: https://clck.ru/SGecU * ★ Автор видео: Дмитрий Афанасьев. ★ Канал: https://clck.ru/JVYct * ► Выразить благодарность, поддержать донатом развитие канала. ★ https://www.tinkoff.ru/rm/afanasev.dmitriy164/2eqLm80777 ★ https://www.donationalerts.ru/r/dmitry_afanasyev * ► Еще интересные курсы: ★ PHP для начинающих: https://clck.ru/PJK3i ★ Видеокурс "Эксперт PHP": https://clck.ru/PJJwZ ★ Видеокурс по Laravel: https://clck.ru/JVYa2 ★ Видеокурс по Git: https://clck.ru/JVYYm ★ Объяснение SOLID: https://clck.ru/JVYXq ★ Шаблоны проектирования: https://clck.ru/JVYX7 ★★★ Все курсы → https://clck.ru/JVYVd

Похожие видео