PSR代碼規範

轉自 https://www.kancloud.cn/thinkphp/php-fig-psr/3139php

 

PSR-1基本代碼規範thinkphp

  PHP代碼文件必須以 <?php 或 <?= 標籤開始;

  PHP代碼文件必須以 不帶BOM的 UTF-8 編碼;

  PHP代碼中應該只定義類、函數、常量等聲明,或其餘會產生 從屬效應 的操做(如:生成文件輸出以及修改.ini配置文件等),兩者只能選其一;

  命名空間以及類必須符合 PSR 的自動加載規範:PSR-0 或 PSR-4 中的一個;

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

  類中的常量全部字母都必須大寫,單詞間用下劃線分隔;

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

PSR-2代碼風格規範編碼

  代碼必須遵循 PSR-1 中的編碼規範 。

  代碼必須使用4個空格符而不是 tab鍵 進行縮進。

  每行的字符數應該軟性保持在80個以內, 理論上必定不可多於120個, 但必定不能有硬性限制。

  每一個 namespace 命名空間聲明語句和 use 聲明語句塊後面,必須插入一個空白行。

  類的開始花括號({)必須寫在函數聲明後自成一行,結束花括號(})也必須寫在函數主體後自成一行。

  方法的開始花括號({)必須寫在函數聲明後自成一行,結束花括號(})也必須寫在函數主體後自成一行。

  類的屬性和方法必須添加訪問修飾符(private、protected 以及 public), abstract 以及 final必須聲明在訪問修飾符以前,而 static必須聲明在訪問修飾符以後。

  控制結構的關鍵字後必需要有一個空格符,而調用方法或函數時則必定不能有。

  控制結構的開始花括號({)必須寫在聲明的同一行,而結束花括號(})必須寫在主體後自成一行。

  控制結構的開始左括號後和結束右括號前,都必定不能有空格符。spa

PSR-3日誌接口規範debug

    LoggerInterface 接口對外定義了八個方法,分別用來記錄 RFC 5424 中定義的八個等級的日誌:debug、 info、 notice、 warning、 error、 critical、 alert 以及     emergency 。

    第九個方法 —— log,其第一個參數爲記錄的等級。可以使用一個預先定義的等級常量做爲參數來調用此方法,必須與直接調用以上八個方法具備相同的效果。若是傳入的等    級常量參數沒有預先定義,則必須拋出 Psr\Log\InvalidArgumentException 類型的異常。在不肯定的狀況下,使用者不應使用未支持的等級常量來調用此方法。日誌

    以上每一個方法都接受一個字符串類型或者是有 __toString() 方法的對象做爲記錄信息參數,這樣,實現者就能把它當成字符串來處理,不然實現者必須本身把它轉換成字    串。
PSR-4自動載入代碼規範

  完整的類名必需要有一個頂級命名空間,被稱爲 「vendor namespace」;

  完整的類名能夠有一個或多個子命名空間;

  完整的類名必須有一個最終的類名;

  完整的類名中任意一部分中的下滑線都是沒有特殊含義的;

  完整的類名能夠由任意大小寫字母組成;

  全部類名都必須是大小寫敏感的。

  當根據完整的類名載入相應的文件……

  完整的類名中,去掉最前面的命名空間分隔符,前面連續的一個或多個命名空間和子命名空間,做爲「命名空間前綴」,其必須與至少一個「文件基目錄」相對應;

  緊接命名空間前綴後的子命名空間必須與相應的」文件基目錄「相匹配,其中的命名空間分隔符將做爲目錄分隔符。

  末尾的類名必須與對應的以 .php 爲後綴的文件同名。

  自動加載器(autoloader)的實現必定不能拋出異常、必定不能觸發任一級別的錯誤信息以及不該該有返回值。對象


  記錄信息參數能夠攜帶佔位符,實現者能夠根據上下文將其它替換成相應的值。接口

相關文章
相關標籤/搜索