Я пытаюсь создать простой скелет MVC, и я застрял с зависимостями.
Это то, что у меня сейчас есть:
$config = new Config();
$database = new Database($config);
$uri = new Uri('article/5');
$request = new Request($uri);
$response = new Response;
$router = new Router;
$dispatcher = new Dispatcher($request, $response, $router);
$dispatcher->dispatch(); // Routing, instantiate controller, execute action, send response
Вопрос: как может любой объектполучить доступ к какой-либо зависимости?
Некоторые примеры:
- Контроллеру может потребоваться Config для получения параметров форматирования вывода.
- Mapper может потребоваться база данных для выполнения запросов.
- Любому контроллеру / помощнику требуется доступ к журналу.
- Помощнику может потребоваться любое количество зависимостей (например: Uri_Helper нужен маршрутизатор).
Единственная возможность, которую я могу представитьэто использование реестра, но это нарушает закон Деметры (спросите, что вам действительно нужно).