5.2. コンポーネントでS2Containerを使用する

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