PHP PSR-1 基本程式碼規範

WBOY
發布: 2016-07-23 08:54:44
原創
943 人瀏覽過
基本程式碼規範

本篇規範制定了程式碼基本元素的相關標準,
以確保共享的php程式碼間具有較高程度的技術互通性。

關鍵字「必須」("MUST")、「一定不可/一定不能」("MUST NOT")、「需要」("REQUIRED")、
「將會」("SHALL")、 「不會」("SHALL NOT")、「應該」("SHOULD")、「不該」("SHOULD NOT")、
「推薦」("RECOMMENDED")、「可以」("MAY" )和」可選「("OPTIONAL")的詳細描述可參見[RFC 2119][] 。

概覽


PHP程式碼檔案必須

PHP代碼檔必須以 不含BOM的 UTF-8 編碼;

PHP程式碼中應該只定義類別、函數、常數等聲明,或其他會產生從屬效應的操作(如:產生檔案輸出以及修改.ini設定檔等),二者只能選其一;

命名空間以及類別必須符合 PSR 的自動載入規範:PSR-0[] 中的一個;

類別的命名必須遵循 StudlyCaps 大寫開頭的駝峰命名規範;

類別中的常數所有字母都必須大寫,單字間用底線分隔;

方法名稱必須符合 camelCase 式的小寫開頭駝峰命名規範。

文件


2.1. PHP標籤

PHP代碼必須使用 長標籤 或 = ?> 短輸出標籤;
一定不可使用其它自訂標籤。

2.2. 字元編碼

PHP代碼必須且只可使用不含BOM的UTF-8編碼。

2.3. 從屬效應(副作用)

一份PHP文件中應該要不就只定義新的聲明,如類、函數或常量等不產生從屬效應的操作,要不就只有會產生從屬效應的邏輯操作,但不該同時具有兩者。

「從屬效應」(side effects)一詞的意思是,僅透過包含文件,不直接聲明類別、
函數和常數等,而執行的邏輯操作。

「從屬效應」包含卻不限於:產生輸出、直接的 require 或 include、連接外部服務、修改 ini 配置、拋出錯誤或異常、修改全域或靜態變數、讀取或寫入檔案等。

以下是一個反例,一份包含陳述以及產生從屬效應的程式碼:

  1. // 從屬效應:修改ini 設定
  2. ini_set('error_reporting', E_ALL);
  3. // 從屬效應:引入檔案
  4. include "file.php";
  5. // 從屬效應:產生輸出
  6. echo "n";
  7. // 宣告函數
  8. function foo()
  9. {
  10. // 函數主體部分
  11. }
複製程式碼

以下是範例,只包含聲明不產生從屬效應的程式碼:

  1. //宣告函數
  2. function foo()
  3. {
  4. // 函數主體部分
  5. }
  6. // 條件宣告**不**屬於從屬效應
  7. if (! function_exists ('bar')) {
  8. function bar()
  9. {
  10. // 函數主體部分
  11. }
  12. }
複製程式碼

複製程式碼

複製程式碼

複製程式碼

複製程式碼

    複製程式碼
  1. 複製程式碼
複製程式碼
複製碼>

命名空間與類別

命名空間以及類別的命名必須遵循 [PSR-0][].
根據規範,每個類別都獨立為一個文件,且命名空間至少有一個層次:頂層的組織名稱(vendor name)。
  1. 類別的命名必須 遵循 StudlyCaps 大寫開頭的駝峰命名規範。
  2. PHP 5.3及以後版本的程式碼
  3. 必須
  4. 使用正式的命名空間。
例如:

// PHP 5.3及以後版本的寫法

namespace VendorModel;

class Foo{}

複製程式碼
  1. 5.2.x及之前的版本
  2. 應該
  3. 使用偽命名空間的寫法,約定俗成使用頂層的組織名稱(vendor name)如Vendor_ 為類別前綴。
  4. // 5.2.x及之前版本的寫法
class Vendor_Model_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)

PHP, PSR


來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板