2017 © Pedro Peláez
 

library FunctionParser

Function parser for PHP functions, methods, and closures

image

jeremeamia/FunctionParser

Function parser for PHP functions, methods, and closures

  • Monday, February 2, 2015
  • by jeremeamia
  • Repository
  • 3 Watchers
  • 37 Stars
  • 35,528 Installations
  • PHP
  • 11 Dependents
  • 0 Suggesters
  • 7 Forks
  • 0 Open issues
  • 2 Versions
  • 5 % Grown

The README.md

FunctionParser

The PHP Function Parser library by Jeremy Lindblom., (*1)

Build Status, (*2)

Purpose

The PHP FunctionParser provides the ability to parse and retrieve the code defining an existing function as a string. This can be used in clever ways to generate documentation or example code or even to serialize a closure., (*3)

The class also allows you to get information about the function like the parameter names and the names and values of variables in the use statement of a closure., (*4)

General Use

The FunctionParser relies on the Reflection API and also on the PHP tokenizer (token_get_all()), so PHP must be compiled with the --enable-tokenizer flag in order for the tokenizer to be available., (*5)

Here is a small example of how it works:, (*6)

use FunctionParser\FunctionParser;

$foo = 2;
$closure = function($bar) use($foo) {
    return $foo + $bar;
};

$parser = new FunctionParser(new \ReflectionFunction($closure));
$code   = $parser->getCode();

You can also use the fromCallable factory method as a convenient way to generate the reflected function automatically from any PHP callable:, (*7)

$parser = FunctionParser::fromCallable(function($foo) {echo $foo . 'bar';});
$parser = FunctionParser::fromCallable('Foo::bar');
$parser = FunctionParser::fromCallable(array('Foo', 'bar'));

Installation

The FunctionParser relies on the Reflection API and also on the PHP tokenizer (token_get_all()), so PHP must be compiled with the --enable-tokenizer flag in order for the tokenizer to be available., (*8)

Requirements:, (*9)

  • PHP 5.3.2+
  • PHPUnit for tests
  • Composer for consuming FunctionParser as a dependency

To install FunctionParser as a dependency of your project using Composer, please add the following to your composer.json config file., (*10)

{
    "require": {
        "jeremeamia/FunctionParser": "*"
    }
}

Then run php composer.phar install --install-suggests from your project's root directory to install the FunctionParser., (*11)

Building

There is a buid.xml file that you can use to generate test coverage reports, documenation, and code analytics. The current file is designed to be used with ant, but I will be migrating this to phing sometime soon. More on this later., (*12)

The test suite and code coveage report are currently setup to run in Travis CI. See FunctionParser on Travis CI, (*13)

The Versions

02/02 2015

dev-master

9999999-dev https://github.com/jeremeamia/FunctionParser

Function parser for PHP functions, methods, and closures

  Sources   Download

MIT

The Requires

  • php >=5.3.2

 

function parser tokenizer closure

02/02 2015

1.0.0

1.0.0.0 https://github.com/jeremeamia/FunctionParser

Function parser for PHP functions, methods, and closures

  Sources   Download

MIT

The Requires

  • php >=5.3.2

 

function parser tokenizer closure