Инициализация и наследование классов php
В общем сейчас я инициализирую классы прямо в моем классе Controller, от которого наследуются остальные Котроллеры
<?php
namespace system;
use system\Factory\ControllerFactory;
class Controller
{
public $services;
public $request;
/**
* Controller constructor.
*/
public function __construct()
{
$controllerFactory = new ControllerFactory();
$this->services = $controllerFactory->getServices();
$this->request = $controllerFactory->getRequest();
}
}
Но хочется сделать так чтобы эти классы не инициализировались в конструкторе, а передавались уже готовые, чтобы можно было не трогать class Controller, но добавлять ему нужные объекты динамически. Чтобы Controller был масштабируемым.
Пробовал делать седлающим образом
<?php
namespace system;
use system\ServiceLocator\ServiceContainer;
class Controller
{
public $services;
/**
* Controller constructor.
*/
public function __construct(ServiceContainer $serviceContainer)
{
$this->services = $serviceContainer;
}
}
Но тут проблема заключается в том что при инициализации дочерних классов, каждый раз инициализируется новый класс Controller и из-за этого вылезает ошибка что в конструктор не передано значений.
Я надеюсь что я смог объяснить задачу. Прошу подсказать, показать или хотя-бы направить на правильный путь.