@wittyrider
systemd есть людей

Как лучше организовать работу с сервисами в контроллере $this->get('service') vs controller as service?

Надоело писать код типа
public function someAction() {
    $service = $this->get('app.my_super_puper_service');
}


Хочу что то типа:
/**
 * @Inject("service", "app.my_super_puper_service")
/*
public function someAction($service) {
    // do something
}

или внедрят по тайп хинтингу

Но такое решение пока не нашел.
Остается вариант контроллеры как сервисы.

Вопросы:
1. Считается ли это хорошей практикой?
2. Если использую контроллеры как сервисы есть ли смысл наследовать от базового контроллера?
3. Как у вас организованно контроллеры?
  • Вопрос задан
  • 538 просмотров
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
или внедрят по тайп хинтингу

На самом деле тут есть варианты:
- написать compile pass который будет агрегировать всю эту инфу + param converter который будет инджектить сервисы в контроллер (можно взять за основу готовые штуки, типа как тут и тут
- использовать PHP-DI

Остается вариант контроллеры как сервисы.

Этот вариант хорош только в случае если у нас контроллеры толстые, что само по себе плохо.

Как у вас организованно контроллеры?

экшен контроллера собирает данные из запроса (можно просто кастомные запросы делать и через парам конвертеры разруливать) и передает в сервис уровня приложения, потом выводит результат его работы. Использую get метод и не парюсь, контроллеры это вообще не то о чем надо париться (кроме того что они должны быть тонкими).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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