3

根据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);

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

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

4

1 回答 1

2

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

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

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

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

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

$app = new \Slim\App($container);
于 2016-09-25T10:29:36.803 回答