Esempio n. 1
0
 /**
  * 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()));
         }
     }
 }
Esempio n. 2
0
 /**
  * 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);
     }
 }