jeremeamia / functionparser
PHP 函数、方法和闭包的解析器
Requires
- php: >=5.3.2
This package is auto-updated.
Last update: 2024-09-20 10:14:56 UTC
README
由Jeremy Lindblom编写的PHP函数解析器库。
目的
PHP FunctionParser 提供了解析和检索现有函数定义字符串的能力。这可以通过巧妙的方式用于生成文档或示例代码,甚至可以序列化闭包。
该类还允许您获取有关函数的信息,例如参数名称以及闭包的 use
语句中变量的名称和值。
一般用途
FunctionParser 依赖于反射 API 以及 PHP 标记化器(token_get_all()
),因此 PHP 必须通过编译带有 --enable-tokenizer
标志才能使标记化器可用。
以下是一个说明其工作原理的小例子
use FunctionParser\FunctionParser; $foo = 2; $closure = function($bar) use($foo) { return $foo + $bar; }; $parser = new FunctionParser(new \ReflectionFunction($closure)); $code = $parser->getCode();
您还可以使用 fromCallable
工厂方法作为从任何 PHP 可调用对象自动生成反射函数的便捷方式
$parser = FunctionParser::fromCallable(function($foo) {echo $foo . 'bar';}); $parser = FunctionParser::fromCallable('Foo::bar'); $parser = FunctionParser::fromCallable(array('Foo', 'bar'));
安装
FunctionParser 依赖于反射 API 以及 PHP 标记化器(token_get_all()
),因此 PHP 必须通过编译带有 --enable-tokenizer
标志才能使标记化器可用。
要求
- PHP 5.3.2+
- PHPUnit 用于测试
- Composer 用于将 FunctionParser 作为依赖项使用
要使用 Composer 将 FunctionParser 安装为项目的依赖项,请将以下内容添加到您的 composer.json
配置文件中。
{ "require": { "jeremeamia/FunctionParser": "*" } }
然后,从项目的根目录运行 php composer.phar install --install-suggests
以安装 FunctionParser。
构建
有一个 buid.xml
文件,您可以使用它来生成测试覆盖率报告、文档和代码分析。当前文件旨在与 ant
一起使用,但我将很快将其迁移到 phing
。稍后将有更多关于此的信息。
测试套件和代码覆盖率报告目前配置为在 Travis CI 中运行。[查看 Travis CI 上的 FunctionParser] travis-ci