2016-09-24 10 views
2

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

ですか?

2番目のアプローチを使用すると、サービスはどのように追加されますか?

答えて

2

もう一方の方が適切ですか?

私の意見では適切な方法はありませんが、実際のスリムなアプリケーションインスタンスを作成する前に、この方法でロガーやその他のものを追加することができます。

2番目のアプローチを使用すると、サービスはどのように追加されますか?

you'rに

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

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

は私が第二に同意すると思う最初のアプローチを使用するのと同じ。コンテナにコンストラクタを渡すことができることもわかりました。このコンストラクタは '['slim_setting' => 123、 'settings' => ['user_setting' => 321] – user1032531

関連する問題