amphp/parser

一个生成器解析器,使流式解析器变得简单。

资助包维护!
amphp

v1.1.1 2024-03-21 19:16 UTC

This package is auto-updated.

Last update: 2024-09-21 20:20:47 UTC


README

AMPHP是一组针对PHP设计的事件驱动库,考虑到纤程和并发性。amphp/parser允许轻松构建流式生成器解析器。

安装

此包可以作为Composer依赖项安装。

composer require amphp/parser

要求

  • PHP 7.4+

用法

PHP的生成器是构建增量解析器的好方法。

示例

此简单解析器解析以行为分隔的协议,并为每行打印一条消息。您也可以调用数据回调而不是打印消息。

$parser = new Parser((function () {
    while (true) {
        $line = yield "\r\n";

        if (trim($line) === "") {
            continue;
        }

        print "New item: {$line}" . PHP_EOL;
    }
})());

for ($i = 0; $i < 100; $i++) {
    $parser->push("bar\r");
    $parser->push("\nfoo");
}

更多示例可以在其他AMPHP包中找到,这些包使用此库构建流式解析器。

yield行为

您可以yield一个用作分隔符的字符串、一个用作长度的整数,或者null来清除解析器(如果有的话)中的任何剩余缓冲区,或等待下一次调用Parser::push()

版本

amphp/parser遵循与其他所有amphp包相同的semver语义版本规范。

安全

如果您发现任何与安全相关的问题,请通过电子邮件[email protected]而不是使用问题跟踪器。

许可证

MIT许可证(MIT)。有关更多信息,请参阅LICENSE