Сайт использует сервис веб-аналитики Яндекс Метрика с помощью технологии «cookie». Пользуясь сайтом, вы даете согласие на использование данной технологии.
Обзор компонентов слоя контейнера ★ 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): ► Апиато (Apiato): ► Автор Порто [ Mahmoud Zalt ]: ► / 1347260555069894667 ► Плейлист курса: * ★ Автор видео: Дмитрий Афанасьев. ★ Канал: * ► Выразить благодарность, поддержать донатом развитие канала. ★ ★ * ► Еще интересные курсы: ★ PHP для начинающих: ★ Видеокурс "Эксперт PHP": ★ Видеокурс по Laravel: ★ Видеокурс по Git: ★ Объяснение SOLID: ★ Шаблоны проектирования: ★★★ Все курсы →