mnapoli/phpdocreader

此包已被弃用且不再维护。作者建议使用 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: 2021-06-30 13:12:56 UTC


README

CI

此项目被以下使用

将 README 分支来添加您的项目。

功能

PhpDocReader 解析 @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);