/** * Instantiate object definition * * @param string $name * @param string $value * @throws \InvalidArgumentException */ public function __construct($name, $value) { if (class_exists($value) === false) { throw new \InvalidArgumentException('Object definition value must be a name of existing class'); } parent::__construct($name, $value); }
/** * Build Closure definition * * @param \Hope\Di\IContainer $container * @param \Hope\Di\Definition\Closure $definition * * @protected * * @return mixed */ protected function buildFactory(IContainer $container, Closure $definition) { $callable = $definition->getValue(); $arguments = $definition->getArguments(); return $callable(...$this->resolveValues($container, ...$arguments)); }