mirror of
https://github.com/nextcloud/all-in-one.git
synced 2025-12-20 22:46:55 +00:00
| .. | ||
| .github/workflows | ||
| src/PhpDocReader | ||
| .gitattributes | ||
| .gitignore | ||
| .phpcs.xml.dist | ||
| composer.json | ||
| LICENSE | ||
| README.md | ||
PhpDocReader
This project is used by:
Fork the README to add your project here.
Features
PhpDocReader parses @var and @param values in PHP docblocks:
use My\Cache\Backend;
class Cache
{
/**
* @var Backend
*/
protected $backend;
/**
* @param Backend $backend
*/
public function __construct($backend)
{
}
}
It supports namespaced class names with the same resolution rules as PHP:
- fully qualified name (starting with
\) - imported class name (eg.
use My\Cache\Backend;) - relative class name (from the current namespace, like
SubNamespace\MyClass) - aliased class name (eg.
use My\Cache\Backend as FooBar;)
Primitive types (@var string) are ignored (returns null), only valid class names are returned.
Usage
$reader = new PhpDocReader();
// Read a property type (@var phpdoc)
$property = new ReflectionProperty($className, $propertyName);
$propertyClass = $reader->getPropertyClass($property);
// Read a parameter type (@param phpdoc)
$parameter = new ReflectionParameter(array($className, $methodName), $parameterName);
$parameterClass = $reader->getParameterClass($parameter);