Exemplo n.º 1
0
 /**
  * Generates Wsdl Class file
  * @uses WsdlToPhpGenerator::getPackageName()
  * @uses WsdlToPhpGenerator::auditInit()
  * @uses WsdlToPhpGenerator::audit()
  * @uses WsdlToPhpModel::cleanComment()
  * @param string $_rootDirectory the directory
  * @return array the absolute path to the generated file
  */
 private function generateWsdlClassFile($_rootDirectory)
 {
     if (is_file(dirname(__FILE__) . '/WsdlClassFileTpl.php')) {
         self::auditInit('generate_wsdlclass');
         /**
          * Adds additional PHP doc block tags if needed to the two main PHP doc block
          */
         if (count(self::getOptionAddComments())) {
             $file = file(dirname(__FILE__) . '/WsdlClassFileTpl.php');
             $content = array();
             $counter = 2;
             foreach ($file as $line) {
                 if (empty($line)) {
                     continue;
                 }
                 if (strpos($line, ' */') === 0 && $counter) {
                     foreach (self::getOptionAddComments() as $tagName => $tagValue) {
                         array_push($content, " * @{$tagName} {$tagValue}\n");
                     }
                     $counter--;
                 }
                 array_push($content, $line);
             }
             $content = implode('', $content);
         } else {
             $content = file_get_contents(dirname(__FILE__) . '/WsdlClassFileTpl.php');
         }
         $metaInformation = '';
         foreach ($this->wsdls as $wsdlinfos) {
             foreach ($wsdlinfos['meta'] as $metaName => $metaValue) {
                 $metaValueCleaned = WsdlToPhpModel::cleanComment($metaValue);
                 if ($metaValueCleaned === '') {
                     continue;
                 }
                 $metaInformation .= (!empty($metaInformation) ? "\n * " : '') . ucfirst($metaName) . " : {$metaValueCleaned}";
             }
         }
         $content = str_replace(array('packageName', 'PackageName', 'meta_informations', "'wsdl_url_value'"), array(lcfirst(self::getPackageName(false)), self::getPackageName(), $metaInformation, var_export(self::getWsdl(0), true)), $content);
         file_put_contents($_rootDirectory . self::getPackageName() . 'WsdlClass.php', $content);
         self::audit('generate_wsdlclass');
         return array($_rootDirectory . self::getPackageName() . 'WsdlClass.php');
     } else {
         return array();
     }
 }