/** * Resolve definition dependencies * * @param \Hope\Di\IContainer $container * @param \Hope\Di\IDefinition $definition * * @return void */ public function resolve(IContainer $container, IDefinition $definition) { $reflection = $definition->getReflection(); if ($definition instanceof Object) { // Check reflection instance if ($reflection instanceof \ReflectionClass) { // Check class constructor if ($constructor = $reflection->getConstructor()) { $definition->arguments($this->resolveParameters($constructor->getParameters())); } } } elseif ($definition instanceof Closure) { // Check reflection instance if ($reflection instanceof \ReflectionFunction) { $definition->arguments($this->resolveParameters($reflection->getParameters())); } } }
/** * Resolve definition dependencies * * @param \Hope\Di\IContainer $container * @param \Hope\Di\IDefinition $definition * * @return void */ public function resolve(IContainer $container, IDefinition $definition) { if ($definition instanceof Closure && $definition->getArguments() === []) { $definition->setArgument(0, \Hope\Di\IContainer::class); } }