問題描述

WP 核心,許多 WP 外掛和 WP coding standards themselves 使用 Space 字元的非常”generous application”(不是縮排,而是括號和括號的”inside”) 。這似乎是 Wordpress 獨一無二的 – 這種風格/哲學似乎不存在於其他類似專案中,PHP 或其他方面。

有關此方法的更多資訊,請參閱:https://make.wordpress.org/core/handbook/coding-standards/php/#space-usage

示例:foreach ( (array) $foo as $bar ) { ...

我指的是 foreach 之後的空間,第一個 ( 之後,以及最後的)(和上面連結的”Space Usage” 中顯示的其他類似的空格) 之前。

這種風格對我來說似乎是不必要的 – 它需要更多的打字和 (意見) 使視覺上更難解析程式碼 (/意見)

我的願望不是辯論這種風格是否是一個好主意。相反,我只是想了解為什麼這是推薦風格的動機。甚至對 WP 編碼標準的評論者都很好奇:

提供給 MK Safi 的問題的答案基本上是:

  1. 為了可讀性

  2. 現狀 (又名 「那就是這樣」)

我提出的要求是,在我們的 internal-only 專案中,我個人並未看到採用 WP 編碼標準 (關於”Space Usage”) 的價值。但是,如果我缺少某些東西,我很好奇

對於以下 WordPress 的”Space Usage” 樣式,是否有超出上述列出的任何理由,表面上是否有效?

最佳解決方案

Resoning

關於”white space”(無論選項卡或空格):這只是個人偏好,阻礙了專案。

WP 編碼標準 imo 是一個混亂,可以忽略 – 只要你沒有貢獻核心,那就是

  • 一個不同的故事和

  • 風格指南也被忽略。

“[…] it isn’t retroactively applied in bulk on older code as it makes svn/git history very difficult to use. Official policy is that new code should follow the style guide, but if you happen to format adjacent code correctly then so be it, but patches that only format code, or commits that only format code are forbidden.”

– @TomJNowell in the comments

Alternatives

你最好遵守 PSR 標準 (即:2) 或像 Symfony 標準 (或只是你自己的) 這樣的東西。

業績增長工具

沒有獲得編碼標準的利潤 (除了有一個分享,少數人討厭它,而其餘的決定),或從更多或更少的標籤或空格。如果您擔心使用不必要的磁碟空間或可能較慢的程式,您仍然可以在提交時壓縮程式碼 (參見 GitPHPHooks 專案) 。您將獲得的好處將從原始檔案空間大約增加 5%,幾乎等於 HTML 語法壓縮/縮小為您提供的效果。有了 Node.js minify tools 可以透過 npm 獲得。

我個人認為有用的是 PHP Linter 和_PHP Mess Detector 。我併入 GitPHPHooks 庫,所以我不必考慮或關心執行它。

次佳解決方案

點之後的空格是正常的,如 $baz . '-5',這種風格用於操作員的許多編碼標準 (y + z) 。

這樣做是為了提高可讀性,例如其中之一比其他可讀性更可讀。

$cow.$dog.$cat.$table.$chocolate.$puddle.$iterator.$stuctureone.$stucturetwo

$cow . $dog . $cat . $table . $chocolate . $puddle . $iterator . $stuctureone . $stucturetwo

當與其他”code” 包圍時,這變得更加明顯。

對於括號 ( 1, 2, 3 )的空格,我不知道,我猜這個引數也是為了可讀性。

這可能會令人困惑,因為 WordPress standards themselves 具有在註釋中沒有空格的括號的示例,並且程式碼庫本身與某些具有空格的部分混淆,即使在同一個函式中也不會 (見下面的螢幕截圖) 。

大多數 PHP 標準實際上是相反的呼籲。括號應該擁抱他們的內容。實際上,其他語言的大多數編碼標準寫成如下:(1, 2, 3),所以 WP 這樣做是一個謎。

這是一個從 WordPress 函式進行比較的例子。

較大的版本比較:http://i.imgur.com/nTEbV7v.jpg

我喜歡右邊的那個,特別是當看全屏的程式碼,但這是個人喜好。

參考文獻

注:本文內容整合自 google/baidu/bing 翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:gxnotes#qq.com(#替換為 @) 。