phpwatch / phptoken-polyfill
PHP 8.0 的 PhpToken 类的 polyfill
Requires
- php: ^7.1
- ext-tokenizer: *
Requires (Dev)
- ayesh/php-timer: ^1.1.7 || ^2.0
- phpunit/phpunit: ^7.5.20 || ^8.5.3 || ^9.4
This package is auto-updated.
Last update: 2024-09-11 16:17:56 UTC
README
将 PHP 8.0 的 PhpToken
类引入 PHP 7.1 及以上版本的 polyfill。
概述
此库提供了一层兼容层,以引入 PHP 8 带来的 PhpToken
类。它提供了该类的全部功能,但来自于用户空间的 PHP 代码。请注意,PHP 8 内置的 PhpToken
类由于使用 C 语言编写,因此既快又节省内存。但是,如果您有一个需要 PhpToken
类的库,您可以使用此库将此功能透明地引入任何 PHP 7.1 或更高版本。
先决条件
- PHP 7.1 或更高版本。
- Tokenizer 扩展(几乎总是捆绑提供)
安装
最简单的方法是使用 composer 安装。
composer require phpwatch/phptoken-polyfill
如果您的系统中没有提供 PhpToken
类,composer 自动加载器将无缝地自动加载此库提供的类,以提供相同的功能。
如果您不能使用 Composer,尝试说服做出该决定的人,现在已经不是 2012 年了。如果这不起作用,您可以通过手动加载 src/
目录中的类来手动加载。
使用方法
使用方法与 PHP 8 原生 PhpToken
类完全相同。
请确保包含该文件。如果使用 Composer,请包含其自动加载文件。如果 PhpToken
类原生可用,则不会加载此库。如果您不使用 Composer 自动加载器,则需要手动在 src
目录中 require
文件。
以下是使用 PhpToken
类的示例。下面的示例应在任何从 7.1 到 8.0 及以上版本的 PHP 版本中工作,即使 PhpToken
类不可用。
$snippet = '<?php echo "Hello World"; ?>'; $tokens = \PhpToken::tokenize($snippet);
开发、测试和贡献
欢迎贡献。请打开一个问题或发送一个 pull-request。请确保在基于 Linux 的平台和 Windows 上运行测试。Windows 使用 CRLF 行结束符,如果将断言硬编码为期望 LF/CR 优先平台的特定位置,则可能会导致测试失败。
请注意,从 Github 下载的 zip 文件中不包括测试和其他开发依赖项。这是为了保持库的大小较小。您需要克隆存储库或将其分叉以获取完整源代码。