这个库是一个用 Rust 编写的命令行工具,主要用于分析 PHP 包,以评估将新关键字(如 let、using 等)变为 PHP 保留关键字时可能带来的影响。它最初是为 PHP RFC(Request for Comments)“opt-in block scoping”(可选块作用域)提案而开发的,帮助检查这些关键字在现有 PHP 代码中的使用情况,避免引入破坏性变更。
该工具通过 Cargo(Rust 包管理器)构建,无需发布包:
git clone https://github.com/azjezz/php-syntax-analyzer.git
cd php-syntax-analyzer
cargo build --release
构建后,二进制文件位于 target/release/php-syntax-analyzer。
使用 cargo run 或直接运行二进制文件。核心命令格式:php-syntax-analyzer [选项]。
let),覆盖前 10,000 个包:cargo run --release -- -k let --max 10000
cargo run --release -- -k let -k using -k scope -k block -k with --skip-download
选项 | 描述 |
|---|---|
-k, --keyword <KEYWORD> | 指定目标关键字(可重复添加多个)。 |
--min <MIN> | 最小包索引(默认:100)。 |
--max <MAX> | 最大包索引(默认:500)。 |
-d, --directory <DIR> | 下载包的目录(默认:./downloads)。 |
--skip-download | 跳过下载,直接分析现有源代码。 |
--display | 在分析时显示发现的问题详情。 |
let、using 是否安全(示例结果显示 let 无冲突,但 with 有 111 个冲突,可能导致代码破坏)。RFC:https://wiki.php.net/rfc/optin_block_scoping