0

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

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

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) {

  }
}

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

4

1 回答 1

1

有反射

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

请参见ReflectionClass:newInstanceArgs()

于 2012-08-26T00:33:09.837 回答