Skip to content

A set of code generator utilities built on top of PHP-Parsers that ease its use when combined with Reflection

License

Notifications You must be signed in to change notification settings

Ocramius/CodeGenerationUtils

Repository files navigation

Code Generation Utils for PHP-Parser

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
Latest Stable Version Latest Unstable Version Total 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!

About

A set of code generator utilities built on top of PHP-Parsers that ease its use when combined with Reflection

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages