Miles' Blog

天涯何處無幹話,何必要講實務話

Coding Style

建議不要發明一些特殊的 coding style,還是依社群提出來的規則為主,如果特殊需求再做調整。

Zend Framework Coding Standard

http://framework.zend.com/manual/1.12/en/coding-standard.html

PHP FIG

PHP Framework Interop Group

這個團隊制定了一些 PHP coding style 的規範,目的是想讓 PHP open source 專案都有共同的 coding style,以方便大家共同開發維護

參考網頁:

PSR-0 Autoloading Standard

中譯:PSR-0 Autoloading Standard

這份文件定義了檔案、類別、命名空間的命名方式,因為也有提到自動載入,所以同時也會規定檔案該如何存放等。

PSR-0 的設計是考慮到 5.2 沒有 namespace 時所留下來的特性,所以才會用底線分隔。當然還是建議用 PSR-4 比較好

PSR-1 Basic Coding Standard

PSR-1 概觀

  • PHP 程式碼必須<?php<?= 標籤開始。
  • PHP 程式碼必須不帶 BOM 的 UTF-8 編碼。
  • PHP 程式碼中應該只定義 類別 函數 常數,或其他會產生 從屬效應 的操作,兩者只能選其一。
  • 命名空間以及類別必須符合 PSR 的自動載入規範: PSR-0 或 PSR-4 其中一個。
  • 類別命名必須遵循 StudlyCaps 大寫開頭駝峰命名規範。
  • 類別的常數所有字母都必須大寫,單字間用底線 _ 分隔。
  • 方法名稱必須符合 camelCase 式的小寫開頭駝峰命名規範。

PSR-2 Coding Style Guide

PSR-2 概觀

  • 程式碼必須遵守 PSR-1 的規範。
  • 程式碼必須使用 4 個空格,而不是 tab 進行縮排。
  • 每行的字數應該保持在 80 個字以內,理論上一定不能多於 120 個字,但一定不能硬性限制。
  • 每個 namespace 命名空間和 use 後面,必須插入一個空白行。
  • 類別的開始大括號 { 必須寫在類別宣告後獨立一行,結束大括號 }必須寫在類別最後面獨立一行。
  • 方法的開始大括號 { 必須寫在方法宣告後獨立一行,結束大括號 }必須寫在方法最後面獨立一行。
  • 類別的屬性和方法必須加上能見度宣告 (private protected public),abstract 以及 final 宣告必須放在能見度宣告之前,而 static 宣告必須在能見度宣告之後。
  • 流程控制的關鍵字之後,必須要有一個空白,而呼叫方法或函數的時候,則一定不能有空白。
  • 流程控制的開始大括號 { 必須寫在跟流程控制同一行,而結束大括號 } 必須寫在最後面獨立一行。
  • 流程控制的開始左括號後和結束右括號前,都一定不能有空白。

PSR-3 Logger Interface

PSR-4 Autoloader

References

關鍵字:

  • 必須 (MUST)
  • 一定不能 (MUST NOT)
  • 需要 (REQUIRED)
  • 將會 (SHALL)
  • 不會 (SHALL NOT)
  • 應該 (SHOULD)
  • 不該 (SHOULD NOT)
  • 推薦 (RECOMMENDED)
  • 可以 (MAY)
  • 可選 (OPTIONAL)

關鍵字的說明參考 RFC 2119

0%