@kirill-93

Правильный ли подход в Laravel?

Был у меня жирный контроллер, который который отвечал за скачивание новой информации с АПИ 6ти разных сервисов. Под каждый сервис свой метод.
Я создал папку App\Services, в которой создал 6 классов для работы с каждым сервисом. В каждом классе получилось по одному методу.
Затем я в конструкторе контроллера инициализировал эти классы
public function __construct(FirstApi $firstApi,
                                SecondApi $secondApi,
                                ThirdApi $thirdApi)
    {
        $this->firstApi= $firstApi;
        $this->secondApi= $secondApi;
        $this->thirdApi= $thirdApi;
    }

И после этого в методах контроллера вызываю методы сервисов.
public function getInfoFromFirstApi()
{
    $this->firstApi->getInfo();
}


Правильно ли понял идею паттерна "Сервисный слой"?
  • Вопрос задан
  • 245 просмотров
Решения вопроса 1
miraage
@miraage
Старый прогер
Правильно. Бизнес-логика должна находиться в сервисах.
Однако, если Ваши сервисы зарегистрированы в провайдере, что, судя по всему, Вы и сделали, тогда их можно инжектить напрямую в нужные методы контроллера.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы