Вскоре я решил использовать технику внедрения зависимостей для нового PHP-приложения, которое я собираюсь написать.
Однако я не совсем уверен, что понимаю его достаточно.Моя проблема в том, что базовый класс зависит от различных элементов, в то время как для его расширения потребуется много разных классов.Например:
namespace system;
class baseClass
{
protected $logger;
protected $filter;
protected $database;
protected $session;
public function __construct(LoggerInterface $logger, filterInterface $filter, databaseInterface $database, sessionInterface $session)
{
$this->logger = $logger;
$this->filter = $filter;
$this->database = $database;
$this->session = $session;
}
}
Большинству классов понадобится регистратор, фильтр и т. Д. Для выполнения своей работы: например, класс фильтра обрабатывает экранирование / проверку, что мне понадобится во всем проекте.
Проблема, которую я предсказываю, состоит в том, что когда (почти) все объекты расширяют этот базовый класс, каждый раз, когда мне нужно создать экземпляр даже довольно простого класса (но не настолько простого, чтобы, конечно, не нуждаться в элементах, описанных выше), с которыми я сталкиваюськонструктор, который может принимать много параметров.
Когда, например, создается объект класса 'car', для меня это будет нормально:
$car = new Car($color,$amountOfWheels);
, но это выглядит довольногрязно для меня:
$car = new Car($logger, $filter, $database, $session, $color, $amountOfWheels);
Я ищу решение этой проблемы, не нарушая, конечно, парадигму DI.Может быть, поможет какой-то шаблон фабрики, но создание фабричного класса для каждого маленького объекта кажется мне немного излишним ..?