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: 1 311 109
Dependents: 2
Suggesters: 1
Security: 0
Stars: 99
Watchers: 4
Forks: 22
Open Issues: 7
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0
- nikic/php-parser: ^4.15.3
Requires (Dev)
- doctrine/coding-standard: ^12.0.0
- phpunit/phpunit: ^9.5.28
- psalm/plugin-phpunit: ^0.18.4
- roave/infection-static-analysis-plugin: ^1.28.0
- vimeo/psalm: ^5.4.0
- 1.8.x-dev
- 1.7.x-dev
- 1.7.0
- 1.6.x-dev
- 1.6.0
- 1.5.x-dev
- 1.5.0
- 1.4.x-dev
- 1.4.0
- 1.3.x-dev
- 1.3.0
- 1.2.x-dev
- 1.2.0
- 1.1.x-dev
- 1.1.0
- 1.0.0
- 0.4.1
- 0.4.0
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.0
- 0.1.0
- dev-dependabot/composer/symfony/process-6.4.14
- dev-renovate/phpunit-phpunit-11.x
- dev-renovate/all-minor-patch
- dev-renovate/nikic-php-parser-5.x
- dev-renovate/lock-file-maintenance
- dev-feature/ci-update
This package is auto-updated.
Last update: 2024-11-06 16:25:44 UTC
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
.
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!