Edit

Introduction

The Doctrine Reflection project is a simple library used by the various Doctrine projects which adds some additional functionality on top of the reflection functionality that comes with PHP. It allows you to get the reflection information about classes, methods and properties statically.

Installation

The library can easily be installed with composer.

$ composer require doctrine/reflection

Setup

1use Doctrine\Common\Reflection\Psr0FindFile; use Doctrine\Common\Reflection\StaticReflectionParser; use App\Model\User; $finder = new Psr0FindFile(['App' => [ '/path/to/project/src/App' ]]); $staticReflectionParser = new StaticReflectionParser(User::class, $finder);
2
3
4
5
6
7
8
9

Usage

1echo $staticReflectionParser->getClassName(); echo $staticReflectionParser->getNamespaceName();
2

StaticReflectionClass

1$staticReflectionClass = $staticReflectionParser->getReflectionClass(); echo $staticReflectionClass->getName(); echo $staticReflectionClass->getDocComment(); echo $staticReflectionClass->getNamespaceName(); print_r($staticReflectionClass->getUseStatements());
2
3
4
5
6
7
8
9

StaticReflectionMethod

1$staticReflectionMethod = $staticReflectionParser->getReflectionMethod('getSomething'); echo $staticReflectionMethod->getName(); echo $staticReflectionMethod->getDeclaringClass(); echo $staticReflectionMethod->getNamespaceName(); echo $staticReflectionMethod->getDocComment(); print_r($staticReflectionMethod->getUseStatements());
2
3
4
5
6
7
8
9
10
11

StaticReflectionProperty

1$staticReflectionProperty = $staticReflectionParser->getReflectionProperty('something'); echo $staticReflectionProperty->getName(); echo $staticReflectionProperty->getDeclaringClass(); echo $staticReflectionProperty->getDocComment(); print_r($staticReflectionProperty->getUseStatements());
2
3
4
5
6
7
8
9