public function generateDependency(Parameter $parameter, CodeWriter $writer) { $q = $parameter->getAnnotation("Spot\\Inject\\Qualifier"); if ($q) { $writer->write("/** @", get_class($q)); $writer->write("("); $vars = get_object_vars($q); if ($vars) { $name = key($vars); $value = array_shift($vars); $writer->write($name, '='); $writer->literal($value); foreach ($vars as $name => $value) { $writer->write(', ', $name, ' = '); $writer->literal($value); } } $writer->write(") */"); } $class = $parameter->getClass(); if ($class) { $writer->write($class->name, " "); } else { if ($parameter->isArray()) { $writer->write("array "); } } $writer->write('$_', $parameter->getPosition()); }
public static function ofParameter(Parameter $parameter) { $qualifier = $parameter->getAnnotation("Spot\\Inject\\Qualifier"); if ($class = $parameter->getClass()) { return Key::ofType($class->name, $qualifier); } if (!$qualifier) { throw new ConfigurationException("Parameter \${$parameter->name} in " . $parameter->getDeclaringClass()->name . "::" . $parameter->getDeclaringFunction()->name . " is unbindable " . "because it's not type-hinted nor annotated with Qualifier annotation"); } if ($parameter->isArray()) { return Key::ofCollection($qualifier); } return Key::ofConstant($qualifier); }
public function generateParameter(Parameter $parameter, CodeWriter $writer) { $class = $parameter->getClass(); if ($class) { $writer->write("\\", $class->name, " "); } else { if ($parameter->isArray()) { $writer->write("array "); } else { if ($parameter->isCallable()) { $writer->write("callable "); } } } $writer->write("\$", $parameter->name); }
public function generateParameter(Parameter $parameter, CodeWriter $writer) { if ($parameter->getClass()) { $writer->write($parameter->getClass()->name, " "); } else { if ($parameter->isArray()) { $writer->write("array "); } } $writer->write('$', $parameter->name); if ($parameter->isDefaultValueAvailable()) { $writer->write(" = "); $writer->literal($parameter->getDefaultValue()); } }