Coder Social home page Coder Social logo

majkl578 / codegenerationutils Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ocramius/codegenerationutils

0.0 2.0 0.0 483 KB

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

License: MIT License

PHP 100.00%

codegenerationutils's Introduction

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.

Tests Releases Downloads Dependencies
Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Latest Unstable Version Total Downloads Dependency Status

Installation

Supported installation method is via composer:

$ php composer.phar require ocramius/code-generator-utils:0.3.*

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!

codegenerationutils's People

Contributors

carusogabriel avatar duncan3dc avatar gsdevme avatar krymen avatar leedavis81 avatar ocramius avatar prolic avatar remicollet avatar siwinski avatar staabm avatar tamcap avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.