Example #1
0
 /**
  * Add function to structure
  *
  * @param \Deflection\Element\Param $param Param
  *
  * @return \Deflection\Element\Classes
  */
 public function addParam(\Deflection\Element\Param $param)
 {
     $element = $param->getElement();
     $this->params = array_merge($this->params, array(''), $element);
     return $this;
 }
Example #2
0
 /**
  * Add all param to class with public scope to be fill by php SOAPClient
  *
  * @param Deflection\Element\Classes $class      Current class
  * @param array                      $definition Param definition
  *
  * @return \Raoul\Generator
  */
 protected function addParamsFromDefinition(Classes $class, $definition)
 {
     if (!isset($definition['all'])) {
         return $this;
     }
     $allSimple = true;
     $params = array();
     foreach ($definition['all'] as $name => $infos) {
         $param = new Param();
         $docblock = new Docblock();
         $description = ucfirst($name);
         if ($infos['nullable'] === true) {
             $param->setValue('null');
         }
         if ($infos['collection'] === true) {
             $description = $description . ' collection';
             $param->setValue('array()');
         }
         $type = $this->getType($infos['type'], $class->getNamespace());
         $docblock->setDescription($description);
         $docblock->addParam('var', $type);
         $param->setName($name);
         $param->isPublic();
         $param->setDocblock($docblock);
         $class->addParam($param);
         if (!$this->isSImpleType($type)) {
             $allSimple = false;
         } else {
             $params[$name] = $type;
         }
     }
     if ($allSimple) {
         $this->simpleTypeCLass[$class->getName()] = $params;
     }
     return $this;
 }