Куда вынести логику из controllers, commands, jobs. Лучшие практики Laravel разработчиков
"В этом ролике разберем куда следует выносить логику из контроллеров консольных команд и джобсов. Какие есть для этого варианты и в целом где в Laravel хранить дополнительные классы. #controllers#laravel#cutcode --------------------------------------------------------------------------------- ???? Как насчет прокачки своих навыков с помощью наших обучающих видеокурсов по web-разработке? Переходи на мой сайт ? https://learn.cutcode.dev/ ❗️❗️❗️Присоединяйся к нашему комьюнити в телеграм - там и советом помогут и много интересного - https://goo.su/FaKvdeG ???Мой помощник Тэйлор готов выдать тебе подарок. Забирать тут - https://cutcode.dev/chat-bot?utm_source=rt --------------------------------------------------------------------------------- ⏰ Таймкоды: 00:00 Введение 00:35 Подход с использованием ActionClass 02:22 Люк Даунинг об ActionClass 03:25 Создание интерфейсов для ActionClass 07:52 Тестирование 08:39 Работа с моделями 09:22 Немного о трейтах 11:02 Сервис классы 12:22 Дополнительные и вспомогательные классы 13:15 ViewModels 15:02 Подведение итогов Всех поклонников Laravel я приветствую на канале Cutcode! Сегодня мы разберем тему которую частично уже разбирали на канале, но она все еще вызывает массу вопросов - а именно куда выносить логику из контроллеров консольных команд и джобсов - какие есть для этого варианты и в целом где в Laravel хранить дополнительные классы: в каких директориях и в каком виде. Обо всем об этом, но с уклоном в экшен классы в сегодняшнем видео. Ну что же погнали! Друзья давайте начнем с подхода с использованием action классов. Я признаюсь такой подход мне нравится больше всего. Сами action классы хранятся в директории actions вы конечно можете хранить и в любой другой директории, но так принято у Laravel разработчиков и если кто-то будет работать после вас он сразу поймёт что это за директория actions и что здесь за классы. Сами классы выглядят следующим образом - скажем возьмем CswArrayAction здесь есть всего один метод handle это тоже сделано как скажем единый паттерн чтобы всем остальным разработчикам было понятно что именно здесь происходит. И далее у нас есть контроллер Csv контроллер у которого всего один метод invoke метод где мы берем сессии файл и парсим его содержимое в массив и далее передаем во вью. Эту логику я взял просто так чтобы она здесь была, чтобы он был не пустой. На этот момент мы не обращаем внимания у нас просто есть контроллер с какой-то логикой и перед нами стоит задача перенести эту логику в отдельный слой action класс. Далее мы создаем этот экшен класс: вот он у нас здесь. Сюда мы уже перенесли всю логику далее в самом контроллере мы можем этот дубль удалить само собой и здесь с помощью сервис контейнера сделать инъекцию этого action класса CswArrayAction и далее во вью передаем data обращаемся к этому action классу и вызываем метод handle. Вот так в одну строку мы разгрузили контроллер и перенесли его логику в отдельный action класс. Но на этом мы не заканчиваем с action классами на последнем Laracon с докладом о action классах что это лучшие друзья laravel разработчика выступал Люк Даунинг и дополнил этот подход несколькими улучшениями которые мы сейчас с вами также рассмотрим. --------------------------------------------------------------------------------- ? делитесь этим видео с друзьями: https://www.youtube.com/watch?v=0CUIG1JM4IA ? подпишитесь на YouTube-канал: https://www.youtube.com/c/CutCodeRu?sub_confirmation=1 ? Курс по Laravel с нуля: https://www.youtube.com/watch?v=phTSw6XDATw&list=PLTucyHptHtTkUbXaikXEmCWL8GradRx9I Куда вынести логику из controllers, commands, jobs. Лучшие практики Laravel разработчиков --------------------------------------------------------------------------------- ? наш сайт: https://cutcode.dev/?utm_source=rt ? наш instagram: https://www.instagram.com/cutcoderu/ ? Наш telegram-канал: https://t.me/laravel_cutcode"
"В этом ролике разберем куда следует выносить логику из контроллеров консольных команд и джобсов. Какие есть для этого варианты и в целом где в Laravel хранить дополнительные классы. #controllers#laravel#cutcode --------------------------------------------------------------------------------- ???? Как насчет прокачки своих навыков с помощью наших обучающих видеокурсов по web-разработке? Переходи на мой сайт ? https://learn.cutcode.dev/ ❗️❗️❗️Присоединяйся к нашему комьюнити в телеграм - там и советом помогут и много интересного - https://goo.su/FaKvdeG ???Мой помощник Тэйлор готов выдать тебе подарок. Забирать тут - https://cutcode.dev/chat-bot?utm_source=rt --------------------------------------------------------------------------------- ⏰ Таймкоды: 00:00 Введение 00:35 Подход с использованием ActionClass 02:22 Люк Даунинг об ActionClass 03:25 Создание интерфейсов для ActionClass 07:52 Тестирование 08:39 Работа с моделями 09:22 Немного о трейтах 11:02 Сервис классы 12:22 Дополнительные и вспомогательные классы 13:15 ViewModels 15:02 Подведение итогов Всех поклонников Laravel я приветствую на канале Cutcode! Сегодня мы разберем тему которую частично уже разбирали на канале, но она все еще вызывает массу вопросов - а именно куда выносить логику из контроллеров консольных команд и джобсов - какие есть для этого варианты и в целом где в Laravel хранить дополнительные классы: в каких директориях и в каком виде. Обо всем об этом, но с уклоном в экшен классы в сегодняшнем видео. Ну что же погнали! Друзья давайте начнем с подхода с использованием action классов. Я признаюсь такой подход мне нравится больше всего. Сами action классы хранятся в директории actions вы конечно можете хранить и в любой другой директории, но так принято у Laravel разработчиков и если кто-то будет работать после вас он сразу поймёт что это за директория actions и что здесь за классы. Сами классы выглядят следующим образом - скажем возьмем CswArrayAction здесь есть всего один метод handle это тоже сделано как скажем единый паттерн чтобы всем остальным разработчикам было понятно что именно здесь происходит. И далее у нас есть контроллер Csv контроллер у которого всего один метод invoke метод где мы берем сессии файл и парсим его содержимое в массив и далее передаем во вью. Эту логику я взял просто так чтобы она здесь была, чтобы он был не пустой. На этот момент мы не обращаем внимания у нас просто есть контроллер с какой-то логикой и перед нами стоит задача перенести эту логику в отдельный слой action класс. Далее мы создаем этот экшен класс: вот он у нас здесь. Сюда мы уже перенесли всю логику далее в самом контроллере мы можем этот дубль удалить само собой и здесь с помощью сервис контейнера сделать инъекцию этого action класса CswArrayAction и далее во вью передаем data обращаемся к этому action классу и вызываем метод handle. Вот так в одну строку мы разгрузили контроллер и перенесли его логику в отдельный action класс. Но на этом мы не заканчиваем с action классами на последнем Laracon с докладом о action классах что это лучшие друзья laravel разработчика выступал Люк Даунинг и дополнил этот подход несколькими улучшениями которые мы сейчас с вами также рассмотрим. --------------------------------------------------------------------------------- ? делитесь этим видео с друзьями: https://www.youtube.com/watch?v=0CUIG1JM4IA ? подпишитесь на YouTube-канал: https://www.youtube.com/c/CutCodeRu?sub_confirmation=1 ? Курс по Laravel с нуля: https://www.youtube.com/watch?v=phTSw6XDATw&list=PLTucyHptHtTkUbXaikXEmCWL8GradRx9I Куда вынести логику из controllers, commands, jobs. Лучшие практики Laravel разработчиков --------------------------------------------------------------------------------- ? наш сайт: https://cutcode.dev/?utm_source=rt ? наш instagram: https://www.instagram.com/cutcoderu/ ? Наш telegram-канал: https://t.me/laravel_cutcode"
