Куда вынести логику из controllers, commands, jobs. Лучшие практики Laravel разработчиков

В этом ролике разберем куда следует выносить логику из контроллеров консольных команд и джобсов. Какие есть для этого варианты и в целом где в Laravel хранить дополнительные классы. #controllers#laravel#cutcode --------------------------------------------------------------------------------- 🚀📹👨‍🏫 Как насчет прокачки своих навыков с помощью наших обучающих видеокурсов по web-разработке? Переходи на мой сайт 👇 ❗️❗️❗️Присоединяйся к нашему комьюнити в телеграм - там и советом помогут и много интересного - 🤖🤖🤖Мой помощник Тэйлор готов выдать тебе подарок. Забирать тут - --------------------------------------------------------------------------------- ⏰ Таймкоды: 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 разработчика выступал Люк Даунинг и дополнил этот подход несколькими улучшениями которые мы сейчас с вами также рассмотрим. --------------------------------------------------------------------------------- 📹 делитесь этим видео с друзьями: 🔔 подпишитесь на YouTube-канал: 📼 Курс по Laravel с нуля: Куда вынести логику из controllers, commands, jobs. Лучшие практики Laravel разработчиков --------------------------------------------------------------------------------- 🔗 наш сайт: 📷 наш instagram: 📱 Наш telegram-канал: