Город МОСКОВСКИЙ
00:06:15

Laravel контроллеры: концепция Service и Actions

Аватар
Создай Сам Себя
Просмотры:
46
Дата загрузки:
04.09.2023 10:23
Длительность:
00:06:15
Категория:
Обучение

Описание

Как должные выглядеть контроллеры в Laravel? Контроллеры это мосты между роутом, логикой и view. Контроллеры должны иметь минимум кода. У каждого класса своя ответственность - для этого применяются Serveices и Actions.


#laravelконтроллеры#laravel#cutcode
❗️❗️❗️как делать сложные сайты на laravel? Это просто с cutcode!
Поддерживай мой проект - https://cutcode.ru/

Угостить меня кофе - buymeacoffee.com/cutcode

???Мой помощник Тэйлор готов выдать тебе подарок. Забирать тут - https://cutcode.ru/chat-bot

---------------------------------------------------------------------------------
⏰ Таймкоды:
00:00 Введение и немного теории
00:56 Пример с Actions и Services
01:40 В чём разница между Actions и Services
02:12 Создаём Action
04:20 Создаём Service

Друзья всех приветствую на канале Cutcode! В продолжение ролика по Service Container хочу рассказать о еще одной концепции, которая пришла не из Laravel. Но также популярна и среди Laravel разработчиков. Eсли вы будете ее использовать, то Вас всегда поймут и в целом это будет хорошей практикой.

Коротко о сути: в хорошем приложении у каждого класса должно быть своя зона ответственности. Если мы говорим о контроллере то он не должен пестрить огромным полотном кода. Контроллер это такой мост между роутом, логикой и view либо респонсом. Поэтому логику необходимо разделять и выносить в отдельные классы. Рассмотрим пример опять-таки из админ. панели из курсов Laravel с нуля. Ссылку я добавлю обязательно в описание.

Итак в нашем примере у нас есть ресурс-контроллер admin user, метод Update. Здесь некоторая логика с обновлением пользователя, мы обновляем пользователям, делаем какие-то манипуляции с паролем и синхронизируем роли пользователя. В чем суть? Есть также в ресурс-контроллере и метод store, который создает пользователя и здесь по-большему счету тот же самый функционал, та же самая логика. То есть мы уже здесь будем делать два дубля кода. Плюс как этот момент весь тестировать? То есть при юнит тестах мы должны еще создать третий дубль, где также всю эту логику перенесем и там протестируем. Такой подход не есть хорошо и на помощь нам может прийти концепция Actions и Service. В чем собственно их разница? Если брать Actions, то это очень напоминает Laravel Jobs, то есть если мы откроем Jobs в Ларавел, то у нас есть метод Handle, который выполняет какой-либо одно действие логическое. То же самое с Action и исходя из названия это одно действие. То есть мы создаем класс действие и в нем должен быть метод Handle, который будет выполнять это действие. Давайте посмотрим на примере.


---------------------------------------------------------------------------------
? делитесь этим видео с друзьями:
https://www.youtube.com/watch?v=3op0w-5qORc

? подпишитесь на YouTube-канал: https://www.youtube.com/channel/UCkKZ3S8JiB5nUAaTYhpCwzQ?sub_confirmation=1

? Курс по Laravel с нуля:
https://www.youtube.com/watch?v=phTSw6XDATw&list=PLTucyHptHtTkUbXaikXEmCWL8GradRx9I

Laravel контроллеры: концепция Service и Actions

---------------------------------------------------------------------------------
? наш сайт: https://cutcode.ru/
? наш instagram: https://www.instagram.com/cutcoderu/
? Наш telegram-канал: https://t.me/laravel_cutcode

Рекомендуемые видео