Правильный способ использования контейнера зависимостей Slim
Согласно http://www.slimframework.com/docs/tutorial/first-app.html, сначала создается тонкий объект, а затем получается контейнер и к нему добавляются сервисы.
$app = new \Slim\App(["settings" => $config]);
$container = $app->getContainer();
$container['logger'] = function($c) {
...
return $logger;
};
Тем не менее, http://www.slimframework.com/docs/concepts/di.html конкретно посвященный контейнеру зависимостей, гораздо сильнее и гласит:
Вам не нужно предоставлять контейнер зависимостей. Однако, если вы это сделаете, вы должны внедрить экземпляр контейнера в конструктор приложения Slim.
$container = new \Slim\Container; $app = new \Slim\App($container);
Один способ более правильный, чем другой?
Как добавляются услуги при использовании второго подхода?
1 ответ
Один способ более правильный, чем другой?
Есть все то же самое, так что, по моему мнению, нет правильного способа, но я делаю второй подход, потому что таким образом вы можете добавить регистратор и другие вещи, прежде чем создавать фактический тонкий экземпляр приложения.
Как добавляются услуги при использовании второго подхода?
Так же, как использование первого подхода
$container = new \Slim\Container;
$container['logger'] = function($c) {
...
return $logger;
};
$app = new \Slim\App($container);