[英]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編碼風格。 對於這種情況,我正在使用兩個包PHPCodeSniffer和PHP-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.