使用 psalter 批量修复代码前,先预览修改的正确做法是运行命令时加上 --dry-run 参数。该参数会让工具在应用更改前输出所有将被修改的文件列表及具体差异(diff),而不会实际写入磁盘。这样你可以快速确认哪些文件受影响以及修改内容是否符合预期,避免误操作。

如何查看具体的代码变更差异?
要查看具体的代码变更差异,需要在执行 --dry-run 的同时配合 -v(verbose)或 --diff 参数(取决于具体版本支持)。通常 psalter 的 dry-run 模式会直接打印出类似 git diff 的输出,展示每一行被替换前后的内容。例如,如果你有一个包含多个 PHP 文件的目录,运行该命令后,终端会逐文件显示即将进行的语法修正,如将短数组语法 [] 转换为 array() 的具体行号和内容。

psalter --dry-run -v /path/to/your/php/files # 或者在某些配置下 psalter --dry-run --diff /path/to/your/php/files
上述命令执行后,你将看到如下形式的输出示例:
File: src/Example.php
--- Original
+++ Modified
@@ -10,7 +10,7 @@
$config = [
- 'key' => 'value',
+ 'key' => array('value'),
];
通过检查这些差异,你可以确保自动化工具没有错误地修改逻辑代码。如果差异符合预期,再移除 --dry-run 参数进行实际修复。
如何过滤特定文件或目录进行预览?
为了更精准地预览,你可以指定特定的文件或目录路径作为输入参数。这允许你只针对某个模块或单个文件进行预览,而不必扫描整个项目。例如,只想预览 src/Utils 目录下的文件,可以运行 psalter --dry-run src/Utils。此外,如果项目中有不需要修复的文件(如第三方库或生成的代码),可以通过排除参数或配置文件来忽略它们,从而在预览阶段减少噪音。这种细粒度的控制有助于在大型项目中逐步验证修复规则的有效性。

psalter --dry-run src/Utils/*.php # 排除 vendor 目录 psalter --dry-run --exclude=vendor .
在执行过滤后的预览时,输出将仅包含指定路径下的文件差异。这有助于隔离问题,确保修复规则不会影响无关代码。结合版本控制系统(如 Git),你可以在预览后通过 git diff 进一步对比工作区变化,确保一切可控。
预览时发现意外修改应如何处理?
如果在预览阶段发现意外的修改,应立即停止并检查修复规则的配置。首先,确认是否引入了错误的编码标准或过时的语法转换规则。其次,检查是否有自定义的修复器(fixer)被意外启用。对于 psalter,可以通过 --list-fixers 查看当前启用的修复器列表,并使用 --set-level 或手动禁用特定修复器来调整行为。如果发现某个文件被错误修改,可以使用版本控制工具的 git checkout 恢复原状,然后重新配置并再次预览,直到结果符合预期为止。











