基本程式碼規範
本篇規範制定了程式碼基本元素的相關標準, 關鍵字「必須」("MUST")、「一定不可/一定不能」("MUST NOT")、「需要」("REQUIRED")、 概覽 PHP程式碼檔案必須以 PHP代碼檔必須以 不含BOM的 UTF-8 編碼; PHP程式碼中應該只定義類別、函數、常數等聲明,或其他會產生從屬效應的操作(如:產生檔案輸出以及修改.ini設定檔等),二者只能選其一; 命名空間以及類別必須符合 PSR 的自動載入規範:PSR-0[] 中的一個; 類別的命名必須遵循 StudlyCaps 大寫開頭的駝峰命名規範; 類別中的常數所有字母都必須大寫,單字間用底線分隔; 方法名稱必須符合 camelCase 式的小寫開頭駝峰命名規範。 文件 2.1. PHP標籤 PHP代碼必須使用 長標籤 或 = ?> 短輸出標籤; PHP代碼必須且只可使用不含BOM的UTF-8編碼。 2.3. 從屬效應(副作用)一份PHP文件中應該要不就只定義新的聲明,如類、函數或常量等不產生從屬效應的操作,要不就只有會產生從屬效應的邏輯操作,但不該同時具有兩者。 「從屬效應」(side effects)一詞的意思是,僅透過包含文件,不直接聲明類別、 「從屬效應」包含卻不限於:產生輸出、直接的 require 或 include、連接外部服務、修改 ini 配置、拋出錯誤或異常、修改全域或靜態變數、讀取或寫入檔案等。 以下是一個反例,一份包含陳述以及產生從屬效應的程式碼:
以下是範例,只包含聲明不產生從屬效應的程式碼:
複製程式碼 複製程式碼 複製程式碼
命名空間與類別 命名空間以及類別的命名必須遵循 [PSR-0][].根據規範,每個類別都獨立為一個文件,且命名空間至少有一個層次:頂層的組織名稱(vendor name)。 例如:
namespace VendorModel; class Foo{} 複製程式碼 } 複製程式碼類別的常數、屬性和方法
此處的「類別」指所有的類別、介面以及可重複使用程式碼區塊(traits)
4.1. 常量
類別的常數中所有字母都必須大寫,詞間以下劃線分隔。 參考以下程式碼:namespace VendorModel;class Foo{ const VERS = ' 1.0'; const DATE_APPROVED = '2012-06-01';}複製程式碼4.2. 屬性
類別的屬性命名可以遵循大寫開頭的駝峰式($StudlyCaps)、小寫開頭的駝峰式($camelCase) 又或者是下劃線分隔式($under_score),本規範不做強制要求,但無論遵循哪種命名方式,都應該在一定的範圍內保持一致。這個範圍可以是整個團隊、整個套件、整個類別或整個方法。 4.3. 方法方法名稱必須符合 camelCase() 式的小寫開頭駝峰命名規格。 轉自Github(PizzaLiu) |