やったーphpで動く俺俺DIコンテナできたよー\(^o^)/その2
その1とはまったく別に作ったもの。
xml設定ファイルで無しにコードで直接インジェクションが書けるDIコンテナ。
オブジェクトを生成するコンポーネントをコードで書けるのでやりたい放題できます。
sample1.php
<?php // もっともシンプルな形 include( 'DIContainer.php'); class SimpleHuman { public $name; public $age; } class HumanComponent extends ObjectComponent { // getObject( 'human')で、このメソッドは呼び出される public function &fetch( ObjectFetcher &$of) { $object = new SimpleHuman(); $object->name = 'human'; $object->age = 23; return $object; } } $dicon =& DIContainer::singleton( array( 'human')); $human =& $dicon->getObject( 'human'); echo "My name is {$human->name}.\n"; echo "Im {$human->age}.\n";
上記のコードの実行結果
My name is human. Im 23.
ソース
Ore2DIContainer2.zip
いくつかサンプルコードが入ってます。