本標準包含了 對 用於保障 PHP共用代碼的互通性 的標準編碼元素。
The key words “MUST 必須”, “MUST NOT 必須不”, “REQUIRED 需要”, “SHALL 將要”, “SHALL NOT 將不”, “SHOULD 應該”, “SHOULD NOT不應該”, “RECOMMENDED 推薦的”, “MAY 可以”, and “OPTIONAL 可選的” in this document are to be interpreted as described in RFC 2119.
概覽
- 檔案 必須 使用 < ? php 和 < ? = 標籤。
- 檔案中的PHP代碼 必須 使用無BOM頭 UTF-8編碼。
- 檔案即可以聲明“符號”(諸如 類、函數、常量等),也可做一些邊際效應的事情 (諸如產生輸出, 改變ini設定等.)。 但這兩類事情不應出現在同一個檔案裡。
- 命名空間 和 類 必須遵循“autoloading” PSR: [PSR-0, PSR-4]。
- 類名必須使用 StudlyCaps (首字母大寫的駝峰)聲明。
- 類常量必須使用底線分割的大寫字母。
- 方法名必須使用駝峰聲明。
檔案
PHP 標籤
PHP 代碼必須使用長標籤 < ? php ?> 或 echo短標籤 < ? = ? > ; 必須不能使用其他形態的標籤.
字元編碼
PHP代碼必須使用無BOM頭UTF-8編碼
邊際效應
一個檔案 (應該)要麼聲明符號(類、函數和常量等),不能引起任何邊際效應;要麼執行產生邊際效應的代碼。這兩種情況不能出現在一個檔案中。
“邊際效應” 執行與聲明類、函數、常量無關的邏輯。
“邊際效應” 包括但不限於: 產生輸出, 顯式的require或include, 串連外部服務, 修改ini配置, 發出 errors 或 exceptions, 修改全域或靜態變數, 讀寫檔案 等等.
以下是一個即聲明符號,又產生邊際效應的例子; 這是應該要避免的情況:
\n";// 聲明function foo() { // function body}
以下例子只包含聲明,無邊際效應;值得效仿:
命名空間名和類名 命名空間名和類名必須遵循 “autoloading” PSR: [PSR-0, PSR-4].
這意味著每個檔案只能包含一個類, 並且至少有一層命名空間: 頂級的 vendor 名.
類名必須使用 StudlyCaps (首字母大寫駝峰) 聲明.
針對 PHP 5.3 及以後版本的代碼,必須使用正式的命名空間(5.3之前PHP不支援namespace).
例如:
類常量、屬性和方法 這裡的“類”包括 classes, interfaces 和 traits.
4.1. 常量
類常量必須使用底線分割的大寫聲明。
屬性
本指南特意避免偏向 StudlyCaps, camelCase 和 $under_score 中任意一種屬性命名風格.
無論在用哪種命名風格,在合理的範圍內均應改保持一致。 範圍可以使 vendor-level, package-level, class-level, 或 method-level。
方法
方法名必須使用駝峰 camelCase().