示例#1
0
 public function generateParameter(Parameter $parameter, CodeWriter $writer)
 {
     $name = $parameter->isAnnotatedWith("Spot\\App\\Web\\Param") ? $parameter->getAnnotation("Spot\\App\\Web\\Param")->value : $parameter->name;
     if ($parameter->isDefaultValueAvailable()) {
         $writer->write("isset(");
         $this->generateBindedParameter($name, $writer);
         $writer->write(") ? ");
     }
     $class = $parameter->getClass();
     if ($class) {
         if ($class->name == "Spot\\App\\Web\\Request") {
             $writer->write('$rq');
         } else {
             if ($class->name == "Spot\\App\\Web\\Response") {
                 $writer->write('$rp');
             } else {
                 $writer->write('is_array(');
                 $this->generateBindedParameter($name, $writer);
                 $writer->write(') ? $d->newInstance(');
                 $writer->literal($class->name);
                 $writer->write(', ');
                 $this->generateBindedParameter($name, $writer);
                 $writer->write(') : $d->find(');
                 $writer->literal($class->name);
                 $writer->write(', ');
                 $this->generateBindedParameter($name, $writer);
                 $writer->write(')');
             }
         }
     } else {
         $this->generateBindedParameter($name, $writer);
     }
     if ($parameter->isDefaultValueAvailable()) {
         $writer->write(" : ");
         $parameter->isDefaultValueConstant() ? $writer->write($parameter->getDefaultValueConstantName()) : $writer->literal($parameter->getDefaultValue());
     }
 }