我正在使用Bucket DIC进行注射和单元测试。 在大多数情况下,这种类型的代码工作正常:
$model_obj = $dic->get('ThatModel')
但是我无法弄清楚如何在构造函数具有参数的情况下使用DIC:
class OtherModel {
function __construct($param1,$param2) {
}
}
相同的DIC代码不起作用 还有其他容器可以解决这个问题吗?
答案 0 :(得分:1)
通过将工厂附加到容器,您可以控制调用控制器的参数:
$bucket = new bucket_Container(
array(
'OtherModel' => function($container) {
return new OtherModel('first param', 'second param');
}
)
);
$model_obj = $bucket->get('OtherModel');