PSR是一系列關於php開發的規範,分有好幾個版本,自己學的也較為膚淺,但還是希望能時常查看規範,為了方便記憶和遵循,我把關鍵字為必須的撿拾出來,做個簡單必要規範的記錄。 (就是個搬磚的。。。) PSR-0(已棄用) PSR-1 基本程式碼規格 PSR-2 程式碼風格規格 PSR-2 補充文件 PSR-3 日誌介面規格 PSR-4 自動載入 PSR-5和PSR-6投票還未通過 必須 PSR-1 基本程式碼規範php程式碼檔案必以 PHP代碼檔案必須以 不含BOM的 UTF-8 編碼; 命名空間以及類別必須符合 PSR 的自動載入規範:PSR-0 或 PSR-4 中的一個; 類別的命名必須遵循 StudlyCaps 大寫開頭的駝峰命名規範; 類別中的常數所有字母都必須大寫,單字間用底線分隔; 方法名稱必須符合 camelCase 式的小寫開頭駝峰命名規範。 PHP程式碼必須使用 長標籤 或 = ?> 短輸出標籤; 一定不可使用其它自訂標籤。 命名空間以及類別的命名必須遵循 PSR-0. PHP 5.3及以後版本的程式碼必須使用正式的命名空間。 每個類別獨立為一個文件,且命名空間至少有一個層次:頂層的組織名稱(vendor name) PSR-2 程式碼風格規範代碼必須遵循 PSR-1 中的編碼規範 。 程式碼必須使用4個空格符而不是 tab鍵 進行縮排。 備註: 使用空格而不是tab鍵縮排的好處在於, 避免在比較程式碼差異、打補丁、重閱程式碼以及註解時產生混淆。 並且,使用空格縮排,讓對齊變得更方便。 每個 namespace 命名空間宣告語句和 use 宣告語句區塊後面,必須插入一個空白行。 類別的開始花括號({)必須寫在函數宣告後自成一行,結束花括號(})也必須寫在函數主體後面自成一行。 方法的開始花括號({)必須寫在函數宣告後自成一行,結束花括號(})也必須寫在函數主體後面自成一行。 類別的屬性和方法必須 新增存取修飾符(private、protected 以及 public), abstract 以及 final 必須聲明在存取修飾符之前,而 static 必須聲明在存取修飾符之後。 控制結構的關鍵字後必須要有一個空格符,而呼叫方法或函數時則一定不能有。 控制結構的開始花括號({)必須寫在宣告的同一行,而結束花括號(})必須寫在主體後面自成一行。 控制結構的開始左括號後和結束右括號前,都一定不能有空格符號。 所有PHP檔案必須使用Unix LF (linefeed)作為行的結束符號。 所有PHP檔案必須以一個空白行作為結束。 純PHP程式碼檔案必須省略最後的 ?> 結束標籤。 每行一定不能存在多於一條語句。 非空白行後一定不能有多餘的空格符。 PHP所有 關鍵字必須全部小寫。 常數 true 、false 和 null 也必須全部小寫。 PSR-3 日誌介面規範 PSR-4 自動載入規範一個完整的類別名稱需具有以下結構:
當依照完整的類別名稱載入對應的檔案
PHP程式碼應該只定義類別、函數、常數等聲明,或其他會產生從屬效應的操作(如:產生檔案輸出以及修改.ini設定檔等),二者只能選其一; 類別的屬性命名可以遵循大寫開頭的駝峰式($StudlyCaps)、小寫開頭的駝峰式($camelCase) 又或者是下劃線分隔式($under_score),本規範不做強制要求,但無論遵循哪種命名方式,都應該在一定的範圍內保持一致。 PSR-2每行的字元數應該軟性保持在80個之內, 理論上一定不可多於120個, 但一定不能有硬性限制。 空行可以使得閱讀程式碼更加方便以及有助於程式碼的分塊。 程式碼範例 PSR-2
|