2011-12-28 6 views
1

私は注入とユニットテストのためにBucket DICを使用しています。 ほとんどの場合、この種のコードが正常に動作します:コンストラクタ引数付きバケットDICの使用

$model_obj = $dic->get('ThatModel') 

しかし、私は、コンストラクタに引数がある場合にDICを使用する方法を見つけ出すことはできません。

class OtherModel { 
    function __construct($param1,$param2) { 
    } 
} 

同じDICコード動作しません。
この問題を解決する他の容器がありますか?

答えて

1

あなたのコンテナに工場を取り付けることで、あなたは、コントローラが呼び出される引数を指定して制御できます。

$bucket = new bucket_Container(
    array(
    'OtherModel' => function($container) { 
     return new OtherModel('first param', 'second param'); 
    } 
) 
); 

$model_obj = $bucket->get('OtherModel'); 
関連する問題