jeremeamia/functionparser

PHP 函数、方法和闭包的解析器

1.0.0 2015-02-02 17:30 UTC

This package is auto-updated.

Last update: 2024-09-20 10:14:56 UTC


README

由Jeremy Lindblom编写的PHP函数解析器库。

Build Status

目的

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

链接