webmasterapp/phpdoc-reader

PhpDocReader 解析 PHP 文档块中的 @var 和 @param 值(支持与 PHP 相同的命名空间类名解析规则)

2.1.1.1 2019-11-23 19:52 UTC

This package is auto-updated.

Last update: 2024-09-24 07:37:24 UTC


README

Build Status

此项目由以下项目使用

将 README 分支出来以在此处添加您的项目。

功能

PhpDocReader 解析 PHP 文档块中的 @var@param


use My\Cache\Backend;

class Cache
{
    /**
     * @var Backend
     */
    protected $backend;

    /**
     * @param Backend $backend
     */
    public function __construct($backend)
    {
    }
}

它支持与 PHP 相同的解析规则进行命名空间类名

  • 完全限定名称(以 \ 开头)
  • 导入的类名(例如 use My\Cache\Backend;
  • 相对类名(从当前命名空间,例如 SubNamespace\MyClass
  • 别名类名(例如 use My\Cache\Backend as FooBar;

原始类型(如 @var string)被忽略(返回 null),只返回有效的类名。

用法

$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);