示例#1
0
 /**
  * @param ClassName                 $className
  * @param array<array<ClassName>>   $usedClasses
  * @param array<MethodDefinition>   $methods
  * @param array<PropertyDefinition> $properties
  */
 public function __construct(ClassName $className, array $usedClasses = array(), array $methods = array(), array $properties = array())
 {
     $this->typeCheck = TypeCheck::get(__CLASS__, func_get_args());
     $this->className = $className->toAbsolute();
     $this->methods = $methods;
     $this->properties = $properties;
     if ($className->hasParent()) {
         $namespaceName = $className->parent();
     } else {
         $namespaceName = null;
     }
     $this->classNameResolver = new ClassNameResolver($namespaceName, $usedClasses);
 }
 /**
  * @param ClassName $className
  *
  * @return string
  */
 protected function PSRPath(ClassName $className)
 {
     $this->typeCheck->PSRPath(func_get_args());
     return str_replace('\\', '/', $className->parent()->string()) . '/' . str_replace('_', '/', $className->shortName()->string()) . '.php';
 }