【问题标题】:Propery way to use Slim's dependency container正确使用 Slim 的依赖容器的方法
【发布时间】:2016-09-24 19:15:14
【问题描述】:

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

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

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

【问题讨论】:

    标签: php dependency-injection slim pimple


    【解决方案1】:

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

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

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

    和第一种方法一样

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

    【讨论】:

    • 我想我同意第二个。我还发现您可以将构造函数传递给 Container,它的格式似乎必须为 ['slim_setting'=>123,'settings'=>['user_setting'=>321]]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多