The PHP Function Parser library by Jeremy Lindblom.
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.
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.
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.
Here is a small example of how it works:
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:
$parser = FunctionParser::fromCallable(function($foo) {echo $foo . 'bar';}); $parser = FunctionParser::fromCallable('Foo::bar'); $parser = FunctionParser::fromCallable(array('Foo', 'bar'));
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.
Requirements:
To install FunctionParser as a dependency of your project using Composer, please add the following to your composer.json
config file.
{ "require": { "jeremeamia/FunctionParser": "*" } }
Then run php composer.phar install --install-suggests
from your project's root directory to install the FunctionParser.
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.
The test suite and code coveage report are currently setup to run in Travis CI. [See FunctionParser on Travis CI] travis-ci
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4