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

如何在Laravel中使用FriendsOfPHP/PHP-CS-Fixer包格式化JSON文件

配置调整方案

1. 调整Finder规则,匹配JSON文件

PHP-CS-Fixer默认仅扫描PHP文件,需要手动指定匹配.json后缀的文件,可按需排除不需要格式化的JSON文件(如自动生成的锁文件等)。

$finder = PhpCsFixer\Finder::create()
    ->ignoreVCSIgnored(true)
    ->exclude('tests/Fixtures')
    ->in(__DIR__.'/../laravel8')
    ->ignoreDotFiles(true)
    ->ignoreVCS(true)
    // 新增:匹配所有JSON文件
    ->name('*.json')
    // 可选:排除不需要格式化的JSON文件
    ->notName('package-lock.json')
    ->notName('composer.lock')
    ->append([
        __DIR__.'/dev-tools/doc.php',
        __FILE__,
    ]);

2. 新增JSON格式化规则

在规则配置中加入JSON相关的格式化规则,可选配置项可根据自身需求调整:

$config = new PhpCsFixer\Config();
$config
    ->setRiskyAllowed(true)
    ->setRules([
        '@PSR12' => true, 
        // 新增JSON格式化规则
        'json_indentation' => true, // JSON默认使用4空格缩进,可自定义缩进规则
        'json_unescape_slashes' => true, // 不转义斜杠
        'json_unescape_unicode' => true, // 不转义Unicode中文等特殊字符
    ])
    ->setFinder($finder);

3. 可选:调整执行命令便于调试

原有formatCode函数可正常使用,如需查看格式化详情排查问题,可在命令中加-vvv参数:

public function formatCode(): bool
{
    $output = [];
    exec(
        'php '.storage_path('php-cs-fixer.phar').' fix -vvv --config='.base_path('.php-cs-fixer.dist.php'), $output
    );
    // 调试时可打印输出查看执行日志
    // var_dump($output);
    return true;
}

注意事项

  • 需保证使用的PHP-CS-Fixer版本为3.x及以上,旧版本不支持JSON格式化相关规则
  • 如果仅需要格式化JSON不需要格式化PHP文件,可删除规则中的@PSR12配置,同时在Finder中移除对PHP文件的匹配规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:00:01