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

PHP CS Fixer如何按最大行长度强制长关联数组多行展示

对应规则方案

你要的效果可以通过PHP CS Fixer的内置规则+全局配置实现,也可以用第三方规则包做更精准的控制:

方案1:原生规则实现

需要搭配以下内置规则+全局行宽配置:

  • 必开规则:
    • array_indentation:自动对齐多行数组的缩进
    • whitespace_after_comma_in_array:保证数组逗号后只有一个空格,符合单行数组规范
    • trailing_comma_in_multiline:多行数组末尾自动加尾逗号(可自行配置是否开启)
    • no_trailing_comma_in_singleline_array:单行数组自动去掉末尾多余逗号

配置示例(.php-cs-fixer.dist.php):

<?php

$config = new PhpCsFixer\Config();
return $config
    ->setRules([
        'array_syntax' => ['syntax' => 'short'], // 统一用短数组语法,不需要可以去掉
        'array_indentation' => true,
        'whitespace_after_comma_in_array' => true,
        'trailing_comma_in_multiline' => ['elements' => ['arrays']],
        'no_trailing_comma_in_singleline_array' => true,
    ])
    ->setLineLength(120) // 自定义最大行宽,超过此长度的数组会自动拆成多行
;

方案2:第三方规则精准控制

如果原生规则的换行阈值不符合你的预期,可以安装第三方规则包 kubawerlos/php-cs-fixer-custom-fixers,使用其中的ArrayLineBreak规则,可以完全匹配你要的“短数组保持单行,超长自动拆成每行一个键值对”的效果,还可以单独配置数组的换行阈值,不需要受全局行宽限制。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:18:02