Example #1
0
 /**
  * Generate service class from definition
  *
  * @param array  $definition Class definition
  * @param string $service    Service name
  *
  * @return array
  */
 protected function getServiceClassesFromDefinitions(array $definition, $service)
 {
     $classes = array();
     $namespace = $this->getNamespace();
     $name = ucfirst($service);
     $class = new Classes();
     $class->setName($name);
     $class->setNamespace($namespace);
     $class->setDocblock($this->getDocBlock('Proxy for ' . $name . ' service'));
     $class->setExtends('\\SoapClient');
     if ($this->hasOverwrite()) {
         $parent = new Classes();
         $parent->setName($name);
         $parent->setNamespace($namespace . '\\Base');
         $parent->setDocblock($this->getDocBlock('Parent model for proxy for ' . $name . ' service'));
         $parent->setExtends('\\SoapClient');
         $parent->isAbstract(true);
         $classes[] = $parent;
         $class->addUse('\\' . $namespace . '\\Base\\' . $name, $name . 'Base');
         $class->setExtends($name . 'Base');
         $this->addParamsForService($parent);
         $this->addConstructForService($parent);
         $this->addServicesFromDefinition($parent, $definition, false);
         $this->addServicesFromDefinition($class, $definition, true);
     } else {
         $this->addParamsForService($class);
         $this->addConstructForService($class);
         $this->addServicesFromDefinition($class, $definition);
     }
     $classes[] = $class;
     return $classes;
 }