amphp / parser
一个生成器解析器,使流式解析器变得简单。
v1.1.1
2024-03-21 19:16 UTC
Requires
- php: >=7.4
Requires (Dev)
- amphp/php-cs-fixer-config: ^2
- phpunit/phpunit: ^9
- psalm/phar: ^5.4
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
。