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