php-di/phpdoc-reader

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

2.2.1 2020-10-12 12:39 UTC

This package is auto-updated.

Last update: 2024-08-29 04:39:51 UTC


README

CI

此项目由以下项目使用

复制 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([$className, $methodName], $parameterName);
$parameterClass = $reader->getParameterClass($parameter);