@CaptainJustness

Какая оптимальная структура хранения кастомных классов в Laravel 11?

Мне нужно создать кастомный класс для Laravel. Где его хранить лучше? Создать папку App\Services или App\Libraries? Класс взаимодействует со сторонним сайтом через API. Использоваться будет только в Console\Commands
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ответы на вопрос 3
@mrFlyer
Имхо это не имеет ровно никакого значения, как вам нравится так и называйте и где хотите, там и храните. Тем более, что у вас со временем может таких папок оказаться несколько.
Ответ написан
Adamos
@Adamos
Ну, раз гуру говорят, что best practices нет, посоветую свою just practice.
Вообще не класть в app ничего сверх того, что там держит фреймворк.
Создать свою папку для своих модулей, внутри них создать свои классы (можно повторить иерархию app).
Вопроса, куда девать то, что в эту иерархию не вписывается, уже не возникает - создаешь папку с названием tools, например, и сваливаешь эти тулзы туда ;)

Такой вариант навеян подходом OctoberCMS, где весь РНР-код разработчика ложится в папку plugins/{developer}/{module}, в принципе не смешиваясь с остальной системой.
Как следствие, в следующий проект этот код переносится куда легче.
Ответ написан
pickHabr
@pickHabr
fullstack разработчик
Учитывая что
Класс взаимодействует со сторонним сайтом через API
я бы предложил создать папку SDK (или API как больше нравится) и в ней создать папку под сторонний проект (app/SDK/ProjectName). Если нужно вынести внутреннюю логику приложения то обычно выносят в Services (Сервисный слой, можно почитать в гугле к вопросу о подходах). Если говорить именно о паттернах, то есть такая штука как Porto, можно про нее почитать, но чаще всего это будет тупо сервисный слой.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы