PSR規範學習筆記

2021-07-24 15:26:27 字數 2222 閱讀 7656

psr已經經歷了5次變革,如今psr4就是最新的標準,但是還是有必要了解下5個版本的內容的,於是去php-fig**看了下英文原版;

大概看了遍,發現這規範很多的必須很多時候只是建議,但是php解析器在解析php**時,有時如果不滿足規範,就不會通過或者報錯。因此寫**時建議盡量以psr標準來編寫,畢竟乙個規範的出台,有其重要的現實意義,同時最大的好處是能避免不必要的異常出現;

如下是psr五個標準的英文網頁:

該標準已經在2014/10/21日被明確宣布廢除,取而代之的是psr-4標準;

大綱如下:

(1) 每乙個namespace和class必須是如此命名的:

name>\(\)*name>
(2) 每乙個命名空間必須有乙個頂級的namespace(vendor name);

(3) 每乙個命名空間都必須有乙個或多個子命名空間;

(4) 當載入檔案時,namespace中的每乙個分隔符」\」都會被檔案系統的檔案分隔符替換;

(5) 當載入檔案時,namespace中的每乙個下滑線」_」都會被檔案系統的檔案分隔符替換;

(6) 當載入檔案時,在替換後,將在namespace後新增.php來查詢檔案;

(7) vendor,namespace,class的命名用大小寫字母組合而成;

(1) php檔案必須使用<?php ?>開頭結尾;

(2) php檔案必須使用沒有bom的utf-8編碼(可我看我的部落格「utf8的編碼規則,檔案bom的由來」);

(3) php編碼時應該將無side-effects的**(如類的宣告,函式的宣告),和side-effects的**(改變php環境,改變全域性變數,改變資料庫),分開檔案編寫;

(4) 命名空間和類的定義,必須符合自動載入原則,即每個php檔案只能定義乙個類,而且其namespace必須至少有乙個頂級空間名字vendor-name;

(5) 類裡面的常量,應該用大寫字母和下劃線組合定義;

(6) 類裡面的屬性,命名建議是大小寫開頭的駝峰型或者小寫下劃線行,該規則不做強制,但一定的**範圍內建議使用同一種命名方法,便於閱讀;

(7) 方法的命名,建議是小寫開頭的駝峰型;

該標準是繼承和拓展了psr-1標準,是編碼的基礎標準;

(1) **的縮排必須是4個space,而不是tabs;

(2) 該標準對**的行長度沒有硬性要求,但是建議一行**應該小於120個字元或者是少於80個字元;

(3) namespace和use宣告下都應該留有一空行;

(4) 類的左花括號必須寫在類定義的下一行, 右花括號必須在**體的下一行;

(5) 方法的花括號規則和類的規則一樣;

(6) 所有屬性或者方法必須有可見性宣告(public,private .etc),而final和abstract必須放在可見性宣告前面,而static必須放在可見性宣告之後;

(7) 控制結構的關鍵字(if,switch等)後面必須有個空格,而函式名就不需要了;

(8) 控制結構後面的左花括號必須和控制結構關鍵字在同一行,右花括號在**體的下一行;

(9) 控制結構的左花括號後和右花括號前不能有空格;

(10) 所有php檔案必須使用unix的換行符進行換行;

(11) 所有php檔案結尾必須有一空行;

(12) php**結束符」?>」,在只有php**的檔案裡必須省略;

(13) 非空行,不能在後面新增空格;

(14) php的關鍵字必須是小寫;

(15) extends和implements必須和類的定義寫在同一行;

(16) 所有函式的定義前必須加可見性宣告;

(17) 函式形參的定義時,每乙個引數的前後不能有空格;

該標準主要講述log體系,暫時放下;

該標準主要描述自動載入,相容psr-0標準;

(1) 完整類名格式如下:

\(\)*\
要點:

a 必須有乙個頂級namespace, 和psr-0時說的vendor說的是乙個東西,這裡用「\」符號;

b 必須有乙個或多級namespace;

c 以類名結束;

d 下劃線不具有獨特性(注意和psr-0區別);

e 可使用人體大小寫;

f 整個類名對大小寫敏感;

(2) 自動載入繼承類不能跑出任何異常(exception,throwable,errors)

PSR編碼規範

規範 規範使用說明 規範是乙個php開發工程師必須遵循的基本開發準則,為了提公升 質量,成為乙個合格的軟體開發工程師,規範作為考試標準之一,列為預設評分標準。規範分為四部分 psr 1基本 規範 psr 2 風格規範 psr 3日誌介面規範 psr 4 autoloader,具體參看每一部分規範的詳...

PSR規範 php編碼規範

前言 一開始寫 的時候,只是自己覺得怎麼舒服怎麼寫,什麼格式都是自己覺得順眼就怎麼安排,沒有怎麼閱讀什麼規範的 最近讀了 php the right way 發現寫 作為一門工程學還是要優雅,規範,清爽的寫,so,分享以下編碼規範,每次寫完 之後,自己都會拿出規範,讓自己的 風格盡量遵守這些編碼規則...

PSR 規範 PSR 3 日誌介面規範

本文制定了日誌類庫的通用介面規範。本規範的主要目的,是為了讓日誌類庫以簡單通用的方式,通過接收乙個 psr log loggerinte ce 物件,來記錄日誌資訊。框架以及cms內容管理系統如有需要,可以 對此介面進行擴充套件,但需遵循本規範,這才能保證在使用第三方的類庫檔案時,日誌介面仍能正常對...