使用Bucket DIC和构造函数参数

时间:2011-12-28 06:17:54

标签: php dependency-injection

我正在使用Bucket DIC进行注射和单元测试。 在大多数情况下,这种类型的代码工作正常:

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

但是我无法弄清楚如何在构造函数具有参数的情况下使用DIC:

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

相同的DIC代码不起作用 还有其他容器可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

通过将工厂附加到容器,您可以控制调用控制器的参数:

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

$model_obj = $bucket->get('OtherModel');