PHP Classes

File: system/dependencies/php-di/phpdoc-reader/README.md

Recommend this page to a friend!
  Classes of Dimitri Sitchet   dFramework   system/dependencies/php-di/phpdoc-reader/README.md   Download  
File: system/dependencies/php-di/phpdoc-reader/README.md
Role: Documentation
Content type: text/markdown
Description: Documentation
Class: dFramework
Framework to build PHP applications
Author: By
Last change:
Date: 3 years ago
Size: 1,358 bytes
 

Contents

Class file image Download

PhpDocReader

![](https://img.shields.io/packagist/dt/PHP-DI/phpdoc-reader.svg)

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