Цель:
Я пытаюсь «получить данные внутри моего класса контроллера». Есть два подхода, которые я пытаюсь оценить.
Внедрение DAO в мой Контроллер — Контроллер узнает о «чужой» конструкции предоставления данных (репозиторий, DAO, модель). Контроллер может запрашивать эти конструкции для получения необходимых данных.
Создание и заполнение контроллера в другом месте — контроллер не знает ни о какой «чужой» конструкции предоставления данных. Он напрямую заполняется необходимыми данными.
Внедрение объекта доступа к данным
Я могу внедрить свой объект DAO в контроллер и использовать его для вызова различных данных, связанных с функциональностью, которую я хочу реализовать.
$controller = new Controller(New DAO());
echo $controller->dao->getData();
Мой контроллер знать ДАО.
Создание и заполнение контроллера напрямую
Я могу использовать шаблон Factory Method или Builder или DataMapper и Создайте & населять мой контроллер с данными, которые ему нужны, без необходимости вводить какой-либо DAO в сам контроллер.
//factory
$data = $this->entityManager->getSomeData();
$controller = new Controller();
$controller->setData($data);
echo $controller->getData();
return $controller;
Контроллер есть не знают ДАО. Это просто заполнено данными непосредственно в другом месте.
Какой способ рекомендуется для какой ситуации?
Задача ещё не решена.
Других решений пока нет …