/** * @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'; }