You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP-CS-Fixer中保留函数名与括号间的空格?

解决PHP-CS-Fixer保留函数名与左括号间空格的问题

针对你使用friendsofphp/php-cs-fixer 3.4.0(PHP 7.4环境)时,已配置single_space_after_construct: true和no_spaces_after_function_name: false,但函数名与左括号间的空格仍被移除的问题,可从以下方向排查:

  • 检查冲突规则
    部分规则会覆盖当前设置,比如function_declaration规则默认会强制移除函数名后的空格。若你的完整规则中启用了该规则,需调整其参数:

    'function_declaration' => [
        'space_before_parenthesis' => true,
    ],
    

    确保该规则的配置允许函数名与左括号间保留空格。

  • 确认规则执行顺序
    PHP-CS-Fixer的规则按配置顺序执行,若后续规则修改了空格设置,会覆盖之前的配置。检查规则列表中,是否有修改函数空格的规则(如method_argument_space等)排在no_spaces_after_function_name之后,调整顺序让保留空格的规则后执行。

  • 验证配置加载有效性
    执行命令php-cs-fixer fix --dry-run --verbose,查看输出中是否明确显示no_spaces_after_function_name为false、single_space_after_construct为true,确认配置文件被正确读取。

  • 排查魔术方法特殊规则
    __invoke是魔术方法,部分针对魔术方法的规则(如magic_method_casing)可能附带空格修改逻辑,检查这类规则的配置是否影响空格保留。

  • 尝试版本升级
    3.4.0版本可能存在规则冲突的bug,升级至3.4.x分支的最新稳定版,查看是否修复了该问题。

内容的提问来源于stack exchange,提问作者Shobi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 01:57:40