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 に答える