Class luya\admin\openapi\phpdoc\PhpDocType
| Inheritance | luya\admin\openapi\phpdoc\PhpDocType |
|---|---|
| Available since version | 3.2.0 |
| Source Code | https://github.com/luyadev/luya-module-admin/blob/master/src/openapi/phpdoc/PhpDocType.php |
A Type Object whether for Return or Param.
Public Properties
| Property | Type | Description | Defined By |
|---|---|---|---|
| $name | string | Contains the type like integer, string, noramlized as lowercase value. |
luya\admin\openapi\phpdoc\PhpDocType |
| $rawName | string | Contains the original raw name. | luya\admin\openapi\phpdoc\PhpDocType |
Protected Properties
| Property | Type | Description | Defined By |
|---|---|---|---|
| $phpDocParser | luya\admin\openapi\phpdoc\PhpDocParser | luya\admin\openapi\phpdoc\PhpDocType |
Public Methods
Protected Methods
| Method | Description | Defined By |
|---|---|---|
| testValidClassName() | luya\admin\openapi\phpdoc\PhpDocType |
Property Details
Contains the type like integer, string, noramlized as lowercase value.
Method Details
| public void __construct ( luya\admin\openapi\phpdoc\PhpDocParser $phpDocParser, $type ) | ||
| $phpDocParser | ||
| $type | ||
public function __construct(PhpDocParser $phpDocParser, $type)
{
$this->rawName = (string) $type;
$this->name = $phpDocParser->normalizeTypes($type);
$this->phpDocParser = $phpDocParser;
}
| public void getClassName ( ) |
public function getClassName()
{
if ($this->_className !== null) {
return $this->_className;
}
if ($this->getIsScalar() || $this->getIsEmpty()) {
$this->_className = false;
return false;
}
// array notation like Users[]
if (StringHelper::contains('[]', $this->rawName)) {
$className = str_replace("[]", '', $this->rawName);
if (($class = $this->testValidClassName($className))) {
$this->_className = $class;
return $class;
}
}
if (($class = $this->testValidClassName($this->rawName))) {
$this->_className = $class;
return $class;
}
if (($class = $this->testValidClassName($this->name))) {
$this->_className = $class;
return $class;
}
$this->_className = false;
return false;
}
Get PhpDocParser from className definition.
| public luya\admin\openapi\phpdoc\PhpDocParser getClassPhpDocParser ( ) |
public function getClassPhpDocParser()
{
if ($this->_phpDocParser === null) {
$this->_phpDocParser = new PhpDocParser(new ReflectionClass($this->getClassName()));
}
return $this->_phpDocParser;
}
| public void getIsArray ( ) |
public function getIsArray()
{
return StringHelper::contains('[]', $this->rawName) || in_array($this->name, [
'array',
'iterable',
]);
}
| public void getIsEmpty ( ) |
public function getIsEmpty()
{
return empty($this->name) || $this->name == 'void';
}
| public void getIsObject ( ) |
public function getIsObject()
{
return in_array($this->name, [
'object',
'resource',
]);
}
| public void getIsScalar ( ) |
public function getIsScalar()
{
return in_array($this->rawName, [
'bool',
'boolean',
'string',
'int',
'integer',
'float',
'double',
'mixed',
]);
}
| public void getNoramlizeName ( ) |
public function getNoramlizeName()
{
return $this->phpDocParser->typesTotype($this->name);
}
| protected void testValidClassName ( $className ) | ||
| $className | ||
protected function testValidClassName($className)
{
if (class_exists($className)) {
return $className;
}
// test relative classNames when objects are in the same namespace
$absoluteClassName = $this->phpDocParser->reflection->getNamespaceName() . '\\' . $className;
if (class_exists($absoluteClassName)) {
return $absoluteClassName;
}
// Find alias definition `XYZ as ABC`
$ensureClassName = $this->phpDocParser->ensureClassName($className);
if ($ensureClassName && class_exists($ensureClassName)) {
return $ensureClassName;
}
return false;
}