簡體   English   中英

使用 phpcs 或 php-cs-fixer 將 function 多行 arguments 固定到某個結構

[英]Fixing function multiline arguments to a certain structure using phpcs or php-cs-fixer

我正在從事一個多年來開發了許多開發人員的項目,並且經常發生沒有編碼標准。

有許多代碼塊通常相似但以不同的方式編寫。 例如:

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 元文檔中有很好的描述。

使用一個或多個多行 arguments(即: arrays或匿名函數)並不構成拆分參數列表本身,因此不會自動執行第 4.6 節。 Arrays 和匿名函數能夠跨越多行。

問題是我找不到合適的規則來允許我使用 PHPCodeSniffer 或 PHP-CS-Fixer 自動修復所有此類塊。

PHP CS Fixer 有一個method_argument_space帶有選項ensure_single_line for on_multiline

配置如下所示:

        'method_argument_space' => [
            'on_multiline' => 'ensure_single_line'
        ],

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM