当前位置: 首页>>代码示例>>PHP>>正文


PHP Generator::getInstance方法代码示例

本文整理汇总了PHP中Generator::getInstance方法的典型用法代码示例。如果您正苦于以下问题:PHP Generator::getInstance方法的具体用法?PHP Generator::getInstance怎么用?PHP Generator::getInstance使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Generator的用法示例。


在下文中一共展示了Generator::getInstance方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: generateClass

 /**
  * Implements the loading of the class object
  * @throws Exception if the class is already generated(not null)
  */
 protected function generateClass()
 {
     if ($this->class != null) {
         throw new Exception("The class has already been generated");
     }
     $config = Generator::getInstance()->getConfig();
     $this->class = new PhpClass($this->phpIdentifier, $config->getClassExists());
     $first = true;
     foreach ($this->values as $value) {
         try {
             $name = Validator::validateNamingConvention($value);
         } catch (ValidationException $e) {
             $name = 'constant' . $name;
         }
         try {
             $name = Validator::validateType($name);
         } catch (ValidationException $e) {
             $name .= 'Custom';
         }
         if ($first) {
             $this->class->addConstant($name, '__default');
             $first = false;
         }
         $this->class->addConstant($value, $name);
     }
 }
开发者ID:davenorthcreek,项目名称:stratum,代码行数:30,代码来源:Enum.php

示例2: setup

 protected function setup()
 {
     $this->outputDir = __DIR__ . '/' . get_class($this) . 'Code';
     $this->generator = Generator::getInstance();
     $this->config = new Config($this->wsdl, $this->outputDir);
     // We do not execute the code generation here to allow individual test cases
     // to update the configuration further before generating.
 }
开发者ID:davenorthcreek,项目名称:stratum,代码行数:8,代码来源:Wsdl2PhpGeneratorFunctionalTestCase.php

示例3: generateClass

 /**
  * Implements the loading of the class object
  * @throws Exception if the class is already generated(not null)
  */
 protected function generateClass()
 {
     if ($this->class != null) {
         throw new Exception("The class has already been generated");
     }
     $config = Generator::getInstance()->getConfig();
     $class = new PhpClass($this->phpIdentifier, $config->getClassExists());
     $constructorComment = new PhpDocComment();
     $constructorComment->setAccess(PhpDocElementFactory::getPublicAccess());
     $constructorSource = '';
     $constructorParameters = '';
     $accessors = array();
     // Add member variables
     foreach ($this->members as $member) {
         $type = '';
         try {
             $type = Validator::validateType($member->getType());
         } catch (ValidationException $e) {
             $type .= 'Custom';
         }
         $name = Validator::validateNamingConvention($member->getName());
         $comment = new PhpDocComment();
         $comment->setVar(PhpDocElementFactory::getVar($type, $name, ''));
         $comment->setAccess(PhpDocElementFactory::getPublicAccess());
         $var = new PhpVariable('public', $name, 'null', $comment);
         $class->addVariable($var);
         if (!$member->getNillable()) {
             $constructorSource .= '  $this->' . $name . ' = $' . $name . ';' . PHP_EOL;
             $constructorComment->addParam(PhpDocElementFactory::getParam($type, $name, ''));
             $constructorComment->setAccess(PhpDocElementFactory::getPublicAccess());
             $constructorParameters .= ', $' . $name;
             if ($config->getConstructorParamsDefaultToNull()) {
                 $constructorParameters .= ' = null';
             }
             if ($config->getCreateAccessors()) {
                 $getterComment = new PhpDocComment();
                 $getterComment->setReturn(PhpDocElementFactory::getReturn($type, ''));
                 $getter = new PhpFunction('public', 'get' . ucfirst($name), '', '  return $this->' . $name . ';' . PHP_EOL, $getterComment);
                 $accessors[] = $getter;
                 $setterComment = new PhpDocComment();
                 $setterComment->addParam(PhpDocElementFactory::getParam($type, $name, ''));
                 $setter = new PhpFunction('public', 'set' . ucfirst($name), '$' . $name, '  $this->' . $name . ' = $' . $name . ';' . PHP_EOL, $setterComment);
                 $accessors[] = $setter;
             }
         }
     }
     $constructorParameters = substr($constructorParameters, 2);
     // Remove first comma
     $function = new PhpFunction('public', '__construct', $constructorParameters, $constructorSource, $constructorComment);
     // Only add the constructor if type constructor is selected
     if ($config->getNoTypeConstructor() == false) {
         $class->addFunction($function);
     }
     foreach ($accessors as $accessor) {
         $class->addFunction($accessor);
     }
     $this->class = $class;
 }
开发者ID:davenorthcreek,项目名称:stratum,代码行数:62,代码来源:ComplexType.php

示例4: __construct

 /**
  * The minimum construction
  *
  * @param string $name The identifier for the type
  * @param string $datatype The restriction(DataType)
  */
 public function __construct($name, $datatype)
 {
     $this->class = null;
     $this->datatype = $datatype;
     $this->identifier = $name;
     $config = Generator::getInstance()->getConfig();
     // Add prefix and suffix
     $name = $config->getPrefix() . $this->identifier . $config->getSuffix();
     try {
         $name = Validator::validateClass($name);
     } catch (ValidationException $e) {
         $name .= 'Custom';
     }
     $this->phpIdentifier = $name;
 }
开发者ID:davenorthcreek,项目名称:stratum,代码行数:21,代码来源:Type.php

示例5: generateClass

   /**
    * Generates the class if not already generated
    */
   public function generateClass()
   {
       $config = Generator::getInstance()->getConfig();
       // Add prefix and suffix
       $name = $config->getPrefix() . $this->identifier . $config->getSuffix();
       // Generate a valid classname
       try {
           $name = Validator::validateClass($name);
       } catch (ValidationException $e) {
           $name .= 'Custom';
       }
       // Create the class object
       $comment = new PhpDocComment($this->description);
       $this->class = new PhpClass($name, $config->getClassExists(), 'SoapClient', $comment);
       // Create the constructor
       $comment = new PhpDocComment();
       $comment->addParam(PhpDocElementFactory::getParam('array', 'config', 'A array of config values'));
       $comment->addParam(PhpDocElementFactory::getParam('string', 'wsdl', 'The wsdl file to use'));
       $comment->setAccess(PhpDocElementFactory::getPublicAccess());
       $source = '  foreach(self::$classmap as $key => $value)
 {
   if(!isset($options[\'classmap\'][$key]))
   {
     $options[\'classmap\'][$key] = $value;
   }
 }
 ' . $this->generateServiceOptions($config) . '
 parent::__construct($wsdl, $options);' . PHP_EOL;
       $function = new PhpFunction('public', '__construct', 'array $options = array(), $wsdl = \'' . $config->getInputFile() . '\'', $source, $comment);
       // Add the constructor
       $this->class->addFunction($function);
       // Generate the classmap
       $name = 'classmap';
       $comment = new PhpDocComment();
       $comment->setAccess(PhpDocElementFactory::getPrivateAccess());
       $comment->setVar(PhpDocElementFactory::getVar('array', $name, 'The defined classes'));
       $init = 'array(' . PHP_EOL;
       foreach ($this->types as $type) {
           if ($type instanceof ComplexType) {
               $init .= "  '" . $type->getIdentifier() . "' => '" . $type->getPhpIdentifier() . "'," . PHP_EOL;
           }
       }
       $init = substr($init, 0, strrpos($init, ','));
       $init .= ')';
       $var = new PhpVariable('private static', $name, $init, $comment);
       // Add the classmap variable
       $this->class->addVariable($var);
       // Add all methods
       foreach ($this->operations as $operation) {
           $name = Validator::validateNamingConvention($operation->getName());
           $comment = new PhpDocComment($operation->getDescription());
           $comment->setAccess(PhpDocElementFactory::getPublicAccess());
           foreach ($operation->getParams() as $param => $hint) {
               $arr = $operation->getPhpDocParams($param, $this->types);
               $comment->addParam(PhpDocElementFactory::getParam($arr['type'], $arr['name'], $arr['desc']));
           }
           $source = '  return $this->__soapCall(\'' . $name . '\', array(' . $operation->getParamStringNoTypeHints() . '));' . PHP_EOL;
           $paramStr = $operation->getParamString($this->types);
           $function = new PhpFunction('public', $name, $paramStr, $source, $comment);
           if ($this->class->functionExists($function->getIdentifier()) == false) {
               $this->class->addFunction($function);
           }
       }
   }
开发者ID:rgantt,项目名称:wsdl2phpgenerator,代码行数:67,代码来源:Service.php


注:本文中的Generator::getInstance方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。