$propertyHash =
$class.'::'.
$property;
if (isset($this->docBlocks
[$propertyHash])) { return $this->docBlocks
[$propertyHash];
} $ucFirstProperty =
ucfirst($property);
if ([$docBlock,
$source,
$declaringClass] =
$this->
getDocBlockFromProperty($class,
$property)) { $data =
[$docBlock,
$source, null,
$declaringClass];
} elseif ([$docBlock,
$_,
$declaringClass] =
$this->
getDocBlockFromMethod($class,
$ucFirstProperty, self::ACCESSOR
)) { $data =
[$docBlock, self::ACCESSOR, null,
$declaringClass];
} elseif ([$docBlock,
$prefix,
$declaringClass] =
$this->
getDocBlockFromMethod($class,
$ucFirstProperty, self::MUTATOR
)) { $data =
[$docBlock, self::MUTATOR,
$prefix,
$declaringClass];
} else { $data =
[null, null, null, null
];
} return $this->docBlocks
[$propertyHash] =
$data;
} /**
* @return array{PhpDocNode, int, string}|null
*/