如何用PHP-CS-Fixer为参数和返回类型的|添加空格?
解决方法
你尝试的binary_operator_spaces是ESLint针对JavaScript的规则,对PHP代码不起作用。要给PHP联合类型的|两侧强制加空格,得用PHP代码规范工具PHP-CS-Fixer的对应规则:
可选规则及配置
1. 通用二元运算符规则 binary_operator_spaces
这个规则可以控制所有二元运算符的空格,包括联合类型的|。在PHP-CS-Fixer的配置文件(比如.php-cs-fixer.dist.php)里这么写:
return (new PhpCsFixer\Config()) ->setRules([ 'binary_operator_spaces' => [ 'default' => 'single_space', 'operators' => [ '|' => 'single_space', ], ], ]);
2. 专门针对类型的规则 types_spaces
如果只想精准控制类型声明里的空格(比如联合、交集类型),用这个规则更合适:
return (new PhpCsFixer\Config()) ->setRules([ 'types_spaces' => [ 'space' => 'single', ], ]);
修复效果
配置好后运行PHP-CS-Fixer,你的代码:
function test(int|string $value): Model|string
会被自动改成:
function test(int | string $value): Model | string
内容的提问来源于stack exchange,提问作者owenmelbz
相关产品推荐
相关产品推荐

