Popularity
5.7
Growing
Activity
7.8
Declining
693
30
64

Code Quality Rank: L4
Monthly Downloads: 23,378
Programming language: PHP
License: MIT License
Tags: Code Analysis    
Latest version: v3.5.0

Better Reflection alternatives and similar libraries

Based on the "Code Analysis" category

Do you think we are missing an alternative of Better Reflection or a related project?

Add another 'Code Analysis' Library

README

Better Reflection

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version License

Better Reflection is a reflection API that aims to improve and provide more features than PHP's built-in reflection API.

Why is it better?

  • You can reflect on classes that are not already loaded, without loading them
  • Ability to reflect on classes directly from a string of PHP code
  • Better Reflection analyses the DocBlocks (using phpdocumentor/type-resolver)
  • Reflecting directly on closures
  • Ability to extract AST from methods and functions
  • Ability to return AST representation of a class or function
  • Fetch return type declaration and parameter type declarations in PHP 7 code
  • Change or remove PHP 7 parameter type and return type declarations from methods and functions
  • Change the body of a function or method to do something different
  • Moar stuff coming soon!

Be sure to read more in the [feature documentation](docs/features.md).

Installation

Require using composer:

$ composer require roave/better-reflection

Usage

<?php

use Roave\BetterReflection\BetterReflection;

$classInfo = (new BetterReflection())
    ->classReflector()
    ->reflect(\Foo\Bar\MyClass::class);

Documentation

  • [Compatibility with core Reflection API](docs/compatibility.md)
  • [Basic usage instructions](docs/usage.md)
  • [Using types](docs/types.md)
  • [The features](docs/features.md)
  • Test suite
  • [AST extraction](docs/ast-extraction.md)
  • [Reflection modification](docs/reflection-modification.md)

Upgrading

Please refer to the [Upgrade Documentation](UPGRADE.md) documentation to see what is required to upgrade your installed BetterReflection version.

Limitations

  • PHP cannot autoload functions, therefore we cannot statically reflect functions

License

This package is released under the [MIT license](LICENSE).

Contributing

If you wish to contribute to the project, please read the [CONTRIBUTING notes](CONTRIBUTING.md).


*Note that all licence references and agreements mentioned in the Better Reflection README section above are relevant to that project's source code only.