コンポーネントが自分自身が登録されているS2Containerに依存している場合は、プロパティインジェクションやセッターインジェクションで
S2Containerインスタンスを取得することができます。S2Containerのコンポーネント名は「container」です。
例として、次のようなサービスクラスを作成します。自動バインディングによりプロパティインジェクションによってS2ContainerインスタンスがDIされます。
class Service { public $container = null; public function add($a, $b) { return $a + $b; } }
実行スクリプトは次のように作成します。
<?php require_once('S2Container/S2Container.php'); use seasar\container\S2ApplicationContext as s2app; s2app::import(dirname(__FILE__) . '/classes'); $service = s2app::get('Service'); print get_class($service->container) . PHP_EOL;
NOTE | |
---|---|
このExampleは examples/misc/s2container にあります。 |
© Copyright The Seasar Foundation and the others 2005-2010, all rights reserved. |