Ejemplo n.º 1
0
 public function bind(Type $type)
 {
     if (!$type->isInstantiable()) {
         throw new ConfigurationException("Type {$type->name} is not instantiable");
     }
     $dependencies = [];
     $ctor = $type->getConstructor();
     foreach ($ctor ? $ctor->getParameters() : [] as $parameter) {
         $dependencies[] = $this->bindParameter($parameter);
     }
     $this->bindings->put(new InlineBinding($type, $dependencies));
 }
Ejemplo n.º 2
0
 public function generateDependencyInjection(Type $type, CodeWriter $writer)
 {
     $ctor = $type->getConstructor();
     $route = $type->getAnnotation("Spot\\App\\Web\\Route");
     $paths = $this->compiler->parse($route->value);
     $parameters = $ctor->getParameters();
     if ($parameters) {
         $this->generateDependencyInjectionParameter(array_shift($parameters), $paths, $writer);
         foreach ($parameters as $parameter) {
             $writer->write(', ');
             $this->generateDependencyInjectionParameter($parameter, $paths, $writer);
         }
     }
 }