コンポーネントが自分自身が登録されている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. |