0

我正在从事一个多年来开发了许多开发人员的项目,并且经常发生没有编码标准。

有许多代码块通常相似但以不同的方式编写。例如:

return $this->render('LibraryItem:list.html.twig',
    [
        'library_items' => $libraryItems,
    ]
);

或者

return $this->render(
    'LibraryItem:list.html.twig',
    [
        'library_items' => $libraryItems,
    ]
);

或者

return $this->render('LibraryItem:list.html.twig', array(
        'library_items' => $libraryItems,
    )
);

现在,我正在升级项目并引入PSR-12编码风格。对于这种情况,我正在使用两个包PHPCodeSnifferPHP-CS-Fixer

我想实现将上述代码块强制转换为下一种格式的其中一个包:

return $this->render('LibraryItem:list.html.twig', [
    'library_items' => $libraryItems,
]);

这是简短、简单且易读的格式,在PSR-2 元文档中有很好的描述。

使用一个或多个多行参数(即:数组或匿名函数)并不构成拆分参数列表本身,因此第 4.6 节不会自动执行。数组和匿名函数能够跨越多行。

问题是我找不到合适的规则来允许我使用 PHPCodeSniffer 或 PHP-CS-Fixer 自动修复所有此类块。

4

1 回答 1

0

PHP CS Fixer 有一个method_argument_space带有.ensure_single_lineon_multiline

配置如下所示:

        'method_argument_space' => [
            'on_multiline' => 'ensure_single_line'
        ],
于 2021-04-02T22:14:53.660 回答