simpletools/functionparser

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

1.0.1 2024-02-16 11:35 UTC

This package is auto-updated.

Last update: 2024-09-16 16:32:15 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

链接