public function getDependencies($parameters) { $dependencies = array(); foreach ($parameters as $parameter) { $dependency = $parameter->getClass(); if ($dependency === null) { if ($parameter->isDefaultValueAvailable()) { $dependencies[] = $parameter->getDefaultValue(); } else { throw new Exception("Can not be resolve class dependency {$parameter->name}"); } } else { $dependencies[] = $this->get($dependency->name); } }
return $dependencies; } }
实现实例: 复制代码 代码如下: <?php
require "container.php";
interface MyInterface{} class Foo implements MyInterface{} class Bar implements MyInterface{} class Baz { public function __construct(MyInterface $foo) { $this->foo = $foo; } }