我正在尝试编写一个非常简单的依赖注入容器。
到目前为止,我有以下内容(它不多,但开始理解):
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) {
}
}
我如何通过服务容器实例化它?
答案 0 :(得分:1)
带反射
$reflectedClass = new ReflectionClass($classname);
$instance = $reflectedClass->newInstanceArgs($constructorArguments);