首頁  >  文章  >  後端開發  >  PHP程式設計風格的基本規範

PHP程式設計風格的基本規範

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼轉載
2019-08-09 17:54:382080瀏覽

PHP程式設計風格的基本規範

由於PHP的彈性,很多人寫起程式碼來也不講求一個好的程式碼規範,使得本來就靈活的PHP程式碼看起來很亂,其實PSR規範中的PSR-1和PSR-2已經定義了PHP編碼中的一些規範,只要我們好好遵守這些規範,即使是使用彈性的腳本語言,也能寫出非常漂亮工整的程式碼。首先我們來看一下已經通過的PSR規範,然後大致講解PSR-1和PSR-2規範的一些具體要求。

已通過的PSR

PHP程式設計風格的基本規範

PSR-1基礎編碼規格

( 1)開閉標籤

首先,PHP程式碼必須以

(2)副作用

PHP檔案要麼聲明類別、介面、函數等,要麼執行邏輯操作(如讀寫檔案或向瀏覽器發送輸出),但不應該同時兼具兩者。

(3)命名

類別的命名必須遵守大寫開頭的駝峰式命名規範。換言之,類別名稱應以大寫字母開頭。屬性的命名方式沒有強制要求,但應該保持一致。方法名稱必須符合小寫開頭的駝峰式命名規範。類別常數中的所有字母必須大寫,單字之間以以下方式劃線分隔。

相關推薦:《PHP知識

#PSR-2編碼風格規格

(1)PSR -1要求PHP程式碼以標籤結束,而應該以一個空白行結束。

(2)namespace宣告後應該插入一個空白行,use宣告語句區塊後面也應該要有一個空白行。不要在同一行程式碼中進行多次use聲明。

(3)類別的開始和結束

class關鍵字、類別名,以及extends和implements關鍵字必須在同一行。如果一個類別實作了多個接口,那麼這些接口名可以在類別聲明的同一行中,也可以各佔一行。如果選擇將這些介面名稱放在多行中,那麼第一個介面名稱必須自成一行,而不是跟在implements關鍵字後面。類別的開始花括號({)應該寫在函數宣告後自成一行,結束花括號(})也應該寫在類別後面自成一行。也就是說,類別聲明看起來如下所示

class EarthGame extends Game implements
    Playable,
    Savable
{
    //类体
}

也可以將類別名稱與類別聲明放在同一行中。

class EarthGame extends Game implements Playble, Savable
{
     //类体
}

(4)屬性宣告

每個屬性都必須有存取修飾符(public、private或protected)。不行使用關鍵字var聲明屬性。 PSR-1中已經涵蓋了屬性名的規格:可以使用底線、小寫駝峰式命名或大寫駝峰式命名方式,但應該保持一致。 (個人推薦屬性採用小寫式駝峰)

(5)方法的開始和結束

所有方法必須具有存取修飾符(public、private或protected)。存取修飾符必須在abstract或final之後,static之前。具有預設值得方法參數應該放在參數列表的末端。

·單行宣告

方法的開始花括號({)應該寫在方法名稱後自成一行,結束花括號(})也應該寫在方法體後自成一行(直接跟在方法程式碼之後)。方法參數清單不應該以空格開始或結束(即應該緊貼包裹著它們的圓括號)。對於每個參數,參數名稱(或預設值)後面應該有一個逗號,且逗號後面有一個空格。這聽起來似乎有些複雜,如下所示:

final public static function generateTile(int $diamondCount, bool $polluted = false)
{
   //方法体
}

·多行宣告

如果方法有很多參數,那麼單行方法宣告是不實際的。此時我們可以分割參數列表,以便將每個參數(包括類型、參數變數、預設值和逗號)單獨放在縮排的一行中。這種情況下,結束圓括號應該放在參數清單後面一行中,並與方法宣告的起始位置對齊。開始花括號({)應該在同一行的結束圓括號之後,以空格分隔。方法體應該從新的一行開始。同樣,這聽起來似乎很複雜,以下範例應該能幫助你理解這條規定。

public function __construct(
    int $size,
    string $name,
    bool $warparound = false,
    bool $aliens = false
) {
  //方法体
}

(6)行與縮排

程式碼應該使用4個空格符來縮進,而不是使用製表符。我們可以檢查編輯器設置,將其設置為按下Tab鍵時使用4個空格而不是製表符。每行程式碼的長度不應該超過120個字元。

(7)方法與函數呼叫

方法名稱和開始圓括號之間不能有空格。方法呼叫中的參數清單的規則與方法宣告中的參數清單規則相同。換言之,對於單行調用,開始圓括號後或結束圓括號前不能有空格。每個參數之後要緊跟著一個逗號,下一個參數前面應該有一個空格。如果需要使用多行程式碼進行方法調用,那麼每個參數應該自成一行並縮進,而且結束圓括號也應該自成一行。

$earthGanme = new EarthGame(
      5,
      'earth',
      true,
      true
);
$earthGame::generateTile(5, true);

(8)流程控制

#

流程控制关键字(if、for、while等)后面必须紧跟一个空格。但是,开始圆括号后不能有空格。同样,结束圆括号前不能有空格。因此内容应该紧贴在括号内的。与类和(单行)函数声明相比,流程控制代码的开始花括号应该与结束圆括号在同一行。结束花括号应该自成一行。以下是一个简单的示例。

$title = [];
for ($x = 0; $x < $diamondCount; $x++) {
    if ($polluted) {
        $title[] = new PollutionDecorator(new DiamondDecorator(new Plains()));
    } else {
        $title[] = new DiamondDecorator(new Plains());
    }
}

注意if和for之后的空格。for和if语句与圆括号在同一行,而且它们的结束圆括号后都有一个空格,然后是流程控制体的开始花括号。

以上是PHP程式設計風格的基本規範的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除