PSR:PHP編碼規范(Proposing a Standards Recommendation)

PSR:PHP編碼規范(Proposing a Standards Recommendation)

只貼出一些需要注意的,后續的版本必須遵循前面的所有未廢棄的版本

PSR1

  1. PHP代碼中應該只定義類、函數、常量等聲明,或其他會產生 從屬效應 的操作(如:生成文件輸出以及修改.ini配置文件等),二者只能選其一
  2. PHP 5.3及以后版本的代碼必須使用正式的命名空間(偽命名空間是用_來分隔類名),類的命名必須是大寫開頭的駝峰命名法
  3. 類(此處指代所有的類、接口、性狀traits):類常量所有字母必須大寫,詞間用_分隔;類的屬性不做強制要求,可用大駝峰、小駝峰或下劃線分隔,但必須保持一致;類方法使用小駝峰

PSR2

  1. 縮進使用4個空格
  2. 每行字符數應該軟性保持在80個以內,理論上一定不可多于120個,但一定不能有硬性限制
  3. 每個namespace命名空間聲明語句 和 use聲明語句塊(不是每一條都要空行) 后面,必須插入一個空白行
  4. 類和方法的花括號自成一行(控制結構不同,后面說)
  5. 類的屬性和方法必須添加訪問修飾符(protected, private, public),且abstract, final必須在訪問修飾符之前,而static必須聲明在訪問修飾符之后
  6. 控制結構的關鍵字后必須有一個空格符,調用方法或函數的時候則一定不能有
  7. 控制結構的開始花括號寫在聲明的同一行,結束花括號自成一行,且開始花括號后 和 結束花括號前,一定不能有空格符
  8. 所有PHP文件必須使用Unix LF作為行的結束符(\n),必須以一個空白行作為結束,純PHP代碼文件必須省略最后的?>
  9. 每行一定不能存在多于一條語句,非空行后一定不能有多余的空格符
  10. PHP所有關鍵字必須全部小寫,包括true, false, null也是
  11. 類、接口、性狀的關鍵字extends和implements必須寫在類名稱的同一行
  12. 每條語句一定不可以定義超過一個屬性
  13. 參數列表可以分列成多行,這樣,包括第一個參數在內的每個參數都必須單獨成行,同時結束括號以及方法開始的花括號必須寫在單獨的同一行,中間用空格分隔
  14. PSR2補充:使用一個或多個多行參數,如數組或匿名參數,將[留在第一行,將]留在與下一個參數同一行

PSR3

  1. 日志接口規范,TODO,使用到的時候再補充

PSR4

以下的類泛指所有的class類、接口、traits可復用代碼塊以及其它類似結構

  1. 一個完整的類名需要有以下的結構:<命名空間>(<子命名空間>)*<類名>
  2. 完整的類名中,去掉最前面的命名空間分隔符,前面連續的一個或多個命名空間和子命名空間,作為“命名空間前綴”,其必須與至少一個“文件基目錄”相對應
  3. 緊接命名空間前綴后的子命名空間必須與相應的”文件基目錄“相匹配,其中的命名空間分隔符將作為目錄分隔符
  4. 末尾的類名必須與對應的以 .php 為后綴的文件同名
  5. 自動加載器(autoloader)的實現一定不能拋出異常、一定不能觸發任一級別的錯誤信息以及不應該有返回值
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 整理自 PHP 標準規范 作為程序員來說,采用統一的編碼風格是非常重要的。這將給未來代碼的編寫、閱讀節省大量時間。...
    野塵lxw閱讀 720評論 0 2
  • 一、php可以做什么 php是一種可以在服務器端運行的編程語言,可以運行在Web服務器端。 php是一門后臺編程語...
    空谷悠閱讀 3,142評論 4 97
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,973評論 19 139
  • 編碼風格指南 本篇規范是 [PSR-1][] 基本代碼規范的繼承與擴展。 本規范希望通過制定一系列規范化PHP代碼...
    零一間閱讀 336評論 0 0
  • PHP 學習目錄 ├─PHP視頻教程 1 LAMP網站構建 │ ├─PHP教程 1.1.1 新版視頻形式介紹│ ...
    曹淵說創業閱讀 16,186評論 29 417