使用Slim的依赖容器的合适方式

时间:2016-09-24 19:15:14

标签: php dependency-injection slim pimple

根据http://www.slimframework.com/docs/tutorial/first-app.html,首先创建slim对象,然后获取容器并添加服务。

$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 个答案:

答案 0 :(得分:2)

  

一种方式比另一方更合适吗?

有一些相同,所以在我看来没有正确的方法,但我正在做第二种方法,因为这样你就可以在创建实际的苗条应用程序实例之前添加记录器和其他东西。

  

使用第二种方法时如何添加服务?

与使用你的第一种方法相同

$container = new \Slim\Container;
$container['logger'] = function($c) {
    ...
    return $logger;
};

$app = new \Slim\App($container);