ocramius / code-generator-utils
A set of code generator utilities built on top of PHP-Parsers that ease its use when combined with Reflection
Fund package maintenance!
Ocramius
Installs: 663 271
Dependents: 3
Suggesters: 1
Security: 0
Stars: 86
Watchers: 3
Forks: 14
Open Issues: 0
Requires
- php: ^8.0
- nikic/php-parser: ^4.10.4
Requires (Dev)
- doctrine/coding-standard: ^8.2.0
- phpunit/phpunit: ^9.5.1
- psalm/plugin-phpunit: ^0.15.0
- roave/infection-static-analysis-plugin: ^1.7
- squizlabs/php_codesniffer: ^3.5.8
- vimeo/psalm: ^4.4.1
README
Code Generation Utils is a small library that is not yet intended for general use.
It is a small project that aims at collecting common solutions to code generation problems that I often face, and for now it doesn't have a really solid structure.
I built it to workaround limitations that I often faced while working
with Zend\Code
,
and it is mainly based on the logic of PHP-Parser.
It will be stabilized together with GeneratedHydrator
and ProxyManager when these two both have
reached at least version 1.0.0
.
Releases | Downloads |
---|---|
Installation
Supported installation method is via composer:
$ php composer.phar require ocramius/code-generator-utils
Provided components
The provided components are generally related with code generation and related problems.
CodeGenerationUtils\Autoloader
This is a small callback-based autoloader component - it should be used when trying to autoload generated classes.
CodeGenerationUtils\FileLocator
The FileLocator basically represents a map of generated class names to files where those classes should be read from or written to. This component can be useful for non-PSR-0-compliant generated code.
CodeGenerationUtils\GeneratorStrategy
Provides logic to serialize a PHP-Parser AST to a class. Current strategies allow to:
- Serialize an AST to a string
- Serialize an AST to a string and evaluate it (via
eval()
) at runtime - Serialize an AST to a string and save it to a file (via
CodeGenerationUtils\FileLocator
)
CodeGenerationUtils\Inflector
Provides various utilities to:
- Convert a generated code's FQCN to the FQCN of the class from which it was generated
- Generate the FQCN of a generated class given an original class name and some arbitrary parameters to be encoded (allows multiple generated classes per origin class)
- Generate unique valid identifier names
CodeGenerationUtils\ReflectionBuilder
Very rudimentary converter that builds PHP-Parser AST nodes from Reflection objects (still WIP)
CodeGenerationUtils\Visitor
Various visitors used to manipulate classes, methods and properties in a given PHP-Parser AST
Contributing
Please read the CONTRIBUTING.md contents if you wish to help out!