依赖注入容器,类参数

时间:2012-08-26 00:23:04

标签: php dependency-injection

我正在尝试编写一个非常简单的依赖注入容器。

到目前为止,我有以下内容(它不多,但开始理解):

class DiContainer
{
    private $_parameters;

    public function __set($key, $value)
    {
        $this->_parameters[$key] = $value;
    }

    public function __get($key)
    {
        if (isset($this->_parameters[$key])) {
            $class = $this->_parameters[$key]; 
            return new $class; 
        }
    }
}

如果一个类需要一些参数会怎么样?

所以,如果我有:

class A {

  public function __construct($params, $params2) {

  }
}

我如何通过服务容器实例化它?

1 个答案:

答案 0 :(得分:1)

带反射

$reflectedClass = new ReflectionClass($classname);
$instance = $reflectedClass->newInstanceArgs($constructorArguments);

请参阅ReflectionClass:newInstanceArgs()