pimple
http://www.lockon.co.jp/officialblog/wp-content/uploads/sites/2/2015/03/pimple.png
非常にメジャーなもの
以下API
$container['hoge'] = function ($c) { return new Hoge; };
hogeキーで返すインスタンスをクロージャで定義
おそらくシングルトン
By default, each time you get a service, Pimple returns the same instance
$container['hoge'] = $container->factory(function ($c) { return new Hoge; });
呼び出される毎に新しいインスタンスを返す
Factoryパターンではないよな…
configみたいに使うのも可能
$container['session_key'] = 'moge';
依存解決後に処理を加えたかったらextendを使う
何か後付でsetter使うとかできそう
code:php
$container'hoge' = function ($c) { return new Hoge; }; $container->extend('hoge', function ($hoge, $c) {
$hoge->setName('moge');
return $hoge;
});
Pimple\ServiceProviderInterface;を実装すれば複数コンテナあった時に引き継ぐことが可能
Pimpleでキーを指定すると定義されたクロージャを実行した結果を返す
クロージャ本体を取得したい場合はraw()メソッドを使用してアクセスする
$container->raw('hoge')
参考リンク