В общем у меня есть сервис Settings, в котором методы для получения настроек сайта.
Мне он нужен в каждом контроллере, ибо он используется в 99% контроллерах. Я решил просто сделать метод в родительском контроллере:
public function settingService()
{
return $this->get('app.setting');
}
Но выпадает ошибки, в которой говорится, что контроллер знает только о "базовых" сервисах, якобы используйте DI.
Окей, допустим я сделаю в родительском:
abstract class Controller extends AbstractController
{
public $settingService;
public function __construct(Setting $settingService)
{
$this->settingService = $settingService;
}
}
И это вроде здравое решение, но в таком случаи если я в дочернем контроллере будут использовать __construct, то мне нужно будет дублировать все аргументы конструктора. А если я захочу что-то добавить общее для всех контроллеров, то мне все контроллеры придётся править.
Есть идея как сделать лучше? А может я вообще не в ту сторону копаю...