2017 © Pedro Peláez
 

library reflection

Low-level tools to extend PHP reflection capabilities

image

brick/reflection

Low-level tools to extend PHP reflection capabilities

  • Thursday, May 31, 2018
  • by BenMorel
  • Repository
  • 2 Watchers
  • 5 Stars
  • 7,835 Installations
  • PHP
  • 3 Dependents
  • 0 Suggesters
  • 1 Forks
  • 1 Open issues
  • 5 Versions
  • 2 % Grown

The README.md

Brick\Reflection

, (*1)

A collection of low-level tools to extend PHP reflection capabilities., (*2)

Build Status Coverage Status Latest Stable Version Total Downloads License, (*3)

Installation

This library is installable via Composer:, (*4)

composer require brick/reflection

Requirements

This library requires PHP 8.1 or later., (*5)

Project status & release process

This library is still under development., (*6)

The current releases are numbered 0.x.y. When a non-breaking change is introduced (adding new methods, optimizing existing code, etc.), y is incremented., (*7)

When a breaking change is introduced, a new 0.x version cycle is always started., (*8)

It is therefore safe to lock your project to a given release cycle, such as 0.6.*., (*9)

If you need to upgrade to a newer release cycle, check the release history for a list of changes introduced by each further 0.x.0 version., (*10)

Documentation

Here is a brief overview of the classes in this package., (*11)

ReflectionTools

This class is a collection of tools that build on top of PHP's reflection classes to provide additional functionality., (*12)

Just create an instance of ReflectionTools and you can use the following methods:, (*13)

  • getClassMethods() returns reflections of all the non-static methods that make up one object, including private methods of parent classes.
  • getClassProperties() returns reflections of all the non-static properties that make up one object, including private properties of parent classes.
  • getClassHierarchy() returns the hierarchy of classes, starting from the first ancestor and ending with the class itself.
  • getReflectionFunction() returns a reflection object for any callable.
  • getFunctionName() returns a meaningful name for the given function, including the class name if it is a method.
  • exportFunctionSignature() exports a function's signature, such as public function foo(string $bar): int.

ImportResolver

ImportResolver resolves class names to their fully qualified name, taking into account the current namespace and use statements of the PHP file they were used in., (*14)

This is particularly useful for parsing annotations such as @param ClassName $foo, where the FQCN of ClassName depends on the file it appears in, for example:, (*15)

<?php

namespace App;

use Foo\Bar;
use Foo\Bar\Baz as Alias;

class Test {

}

You can create a resolver by passing any reflection object belonging to the PHP file as a context: a ReflectionClass, a ReflectionClassConstant, a ReflectionProperty, a ReflectionMethod or a ReflectionParameter:, (*16)

use Brick\Reflection\ImportResolver;

$class = new ReflectionClass(App\Test::class);
$resolver = new ImportResolver($class);

echo $resolver->resolve('\Some\FQCN\Class'); // Some\FQCN\Class
echo $resolver->resolve('Something'); // App\Something
echo $resolver->resolve('Something\Else'); // App\Something\Else
echo $resolver->resolve('Bar'); // Foo\Bar
echo $resolver->resolve('Bar\tender'); // Foo\Bar\tender
echo $resolver->resolve('Alias'); // Foo\Bar\Baz
echo $resolver->resolve('Alias\ooka'); // Foo\Bar\Baz\ooka

The Versions

31/05 2018

dev-master

9999999-dev

Low-level tools to extend PHP reflection capabilities

  Sources   Download

MIT

The Requires

 

The Development Requires

reflection brick

13/10 2017

0.2.1

0.2.1.0

Low-level tools to extend PHP reflection capabilities

  Sources   Download

MIT

The Requires

 

The Development Requires

reflection brick

03/10 2017

0.2.0

0.2.0.0

Low-level tools to extend PHP reflection capabilities

  Sources   Download

MIT

The Requires

 

The Development Requires

reflection brick

03/10 2017

v0.1.x-dev

0.1.9999999.9999999-dev

Low-level tools to extend PHP reflection capabilities

  Sources   Download

MIT

The Requires

 

The Development Requires

reflection brick

03/10 2017

0.1.0

0.1.0.0

Low-level tools to extend PHP reflection capabilities

  Sources   Download

MIT

The Requires

 

The Development Requires

reflection brick