やったーphpで動く俺俺DIコンテナできたよー\(^o^)/その1
コンストラクタインジェクション、セッターインジェクション、メソッドインジェクションに対応。
ただし、メソッドの引数はひとつだけしか指定できません(途中で飽きたので)。
sample.php
<?php include( 'Ore2DIContainer.php'); $xmlstr = ' <objects> <object name="player" class="HumanPlayer"> <property name="human">$human</property> <object name="human" class="Human"> <arg>"Tarou Yamada"</arg> <arg>21</arg> </object> </object> </objects> '; class Human { public $name; public $age; public function __construct( $name, $age) { $this->name = $name; $this->age = $age; } } class HumanPlayer { public $human; public function play() { echo 'My name is ' . $this->human->name . '.' . PHP_EOL; echo 'Im ' . $this->human->age . '.' . PHP_EOL; } } $dicon =& Ore2DIContainer::singleton( $xmlstr); $dicon->getObject( 'player')->play();
上記のコードの実行結果
My name is Tarou Yamada. Im 21.