摘要:參考自動加載已廢棄基本代碼規(guī)范代碼樣式日志接口如何指定文件路徑從而自動加載類定義基本代碼規(guī)范本篇規(guī)范制定了代碼基本元素的相關標準,以確保共享的代碼間具有較高程度的技術互通性。
概述
PSR 不是PHP官方標準,而是從如Zend、Symfony2等知名PHP項目中提煉出來的一系列標準,目前有越來越多的社區(qū)項目加入并遵循該標準。
參考:http://psr.phphub.org/
PSR-0 自動加載 X已廢棄PSR-1基本代碼規(guī)范
PSR-1 基本代碼規(guī)范
PSR-2 代碼樣式
PSR-3 日志接口
PSR-4 如何指定文件路徑從而自動加載類定義
本篇規(guī)范制定了代碼基本元素的相關標準,以確保共享的PHP代碼間具有較高程度的技術互通性。
文件
PHP代碼文件 必須 以
PHP代碼文件 必須 以 不帶 BOM 的 UTF-8 編碼;
PHP代碼中 應該 只定義類、函數(shù)、常量等聲明,或其他會產(chǎn)生 副作用 的操作
(如:生成文件輸出以及修改 .ini配置文件等),二者只能選其一;
命名空間與類
類命名 必須 遵循 StudlyCaps 大寫開頭的駝峰命名規(guī)范;
每個類都獨立為一個文件,且命名空間至少有一個層次:頂級的組織名稱(vendorname)
類屬性:小寫開頭駝峰 $studlyCaps
類方法:小寫開頭駝峰
常量
類中的常量所有字母都 必須 大寫,單詞間用下劃線分隔;
方法名稱 必須 符合 camelCase 式的小寫開頭駝峰命名規(guī)范。
PSR-2編碼風格規(guī)范縮進
代碼 必須 使用4個空格符而不是「Tab 鍵」進行縮進。
行
每行的字符數(shù) 應該 軟性保持在 80 個之內(nèi),一定不可 多于 120 個,但 一定不可 有硬性限制。
所有PHP文件必須以一個空白行作為結束。
每行 一定不可存在多于一條語句 每個 namespace 命名空間聲明語句和 use 聲明語句塊后面,必須 插入一個空白行。
類的開始花括號({) 必須 寫在函數(shù)聲明后自成一行,結束花括號(})也 必須寫在函數(shù)主體后自成一行。
方法的開始花括號({) 必須 寫在函數(shù)聲明后自成一行,結束花括號(})也 必須 寫在函數(shù)主體后自成一行。
控制結構的開始花括號({) 必須 寫在聲明的同一行,而結束花括號(}) 必須 寫在主體后自成一行。
修飾符
類的屬性和方法 必須 添加訪問修飾符(private、protected 以及 public),abstract 以及final 必須 聲明在訪問修飾符之前,而 static 必須 聲明在訪問修飾符之后。
空格
類方法參數(shù)每個逗號后面必須要有一個空格,而逗號前面 一定不可 有空格
控制結構的開始左括號后和結束右括號前,都 一定不可 有空格符。
關鍵字
控制結構的關鍵字后必須要有一個空格符,而調(diào)用方法或函數(shù)時則一定不可有。
PHP所有 關鍵字 必須 全部小寫,常量 true 、false 和 null 也 必須 全部小寫。
PSR-3日志接口規(guī)范LoggerInterface 接口對外定義了八個方法,分別用來記錄 RFC 5424 中定義的八個等級的日志:debug、 info、 notice、 warning、 error、 critical、 alert 以及 emergency 。
第九個方法 —— log,其第一個參數(shù)為記錄的等級。可使用一個預先定義的等級常量作為參數(shù)來調(diào)用此方法,必須 與直接調(diào)用以上八個方法具有相同的效果。
如果傳入的等級常量參數(shù)沒有預先定義,則 必須 拋出PsrLogInvalidArgumentException 類型的異常。在不確定的情況下,使用者 不該 使用未支持的等級常量來調(diào)用此方法。
/** * 日志等級常量定義 */ class LogLevel { constEMERGENCY="emergency"; constALERT ="alert"; constCRITICAL ="critical"; constERROR ="error"; constWARNING ="warning"; constNOTICE ="notice"; constINFO ="info"; constDEBUG ="debug"; }PSR-4自動加載規(guī)范
類似如下范例:
完全合規(guī)類名必須有一個頂級命名空間(Vendor Name)
完全合規(guī)類名可以有多個子命名空間
完全合規(guī)類名應該有一個終止類名
下劃線在完全合規(guī)類名中是沒有特殊含義的
字母在完全合規(guī)類名中可以是任何大小寫的組合
所有類名必須以大小寫敏感的方式引用
終止類名對應一個以 .php 結尾的文件。文件名必須和終止類名大小寫匹配
一些實際商用項目中使用的規(guī)范控制層
不出現(xiàn)sql語句(sql封裝到模型層然后作為方法調(diào)用)
sql語句、3行以上邏輯代碼空行
上下文關系函數(shù)或方法間不空行
bool使用if(true === $name)的形式
使用雙引號鏈接變量
注意隱式轉(zhuǎn)換
使用全局變量需要注釋其含義,取值范圍:
8 函數(shù)頭部如下注釋:
或者
9 注釋間空行:
10 文件頭部注釋:
或者
11 switch語句的case跳轉(zhuǎn)需要注釋
12 標記變量的命名:
13 接口的命名前綴
14 狀態(tài)碼盡量使用常量,而不是難以理解的數(shù)字
15 類文件名使用首大寫駝峰方式,普通文件名使用下劃線方式
16 配置里的變量名使用下劃線方式
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/30757.html
摘要:它包含兩類腳本,和地址腳本對文件定義了一系列的代碼規(guī)范通常使用官方的代碼規(guī)范標準,比如的,能夠檢測出不符合代碼規(guī)范的代碼并發(fā)出警告或報錯可設置報錯等級。腳本能自動修正代碼格式上不符合規(guī)范的部分。 Last-Modified: 2019年5月10日13:59:27 參考鏈接 PHP開發(fā)規(guī)范之使用phpcbf腳本自動修正代碼格式 在PhpStorm中使用PSR2編碼規(guī)范phpcbf腳本自...
摘要:腳本對文件定義了一系列的代碼規(guī)范通常使用官方的代碼規(guī)范標準,比如的,能夠檢測出不符合代碼規(guī)范的代碼并發(fā)出警告或報錯可設置報錯等級。比如規(guī)范中對每一個文件的結尾都需要有一行空行,那么運行這個腳本后就能自動在結尾處加上一行空行。 showImg(https://segmentfault.com/img/remote/1460000011338137); 有些同學可能還沒聽過這東西,大概介紹...
摘要:的使命是實現(xiàn)框架之間的互操作性。個人和官方都認為開發(fā)者應該遵循更為嚴格的代碼標準,在現(xiàn)代的生態(tài)系統(tǒng)中,風格統(tǒng)一,可以更好的讓其他開發(fā)者理解代碼。記錄的消息用于診斷檢查和排除應用中的操作穩(wěn)定性和性能方面的問題。 原文是在我自己博客中,小伙伴也可以點閱讀原文進行跳轉(zhuǎn)查看,還有好聽的背景音樂噢~ ????PSR是PHP Standards Recommendation的簡稱,意為PHP推薦標...
摘要:命名空間需要遵循自動加載規(guī)范。和之后的版本必須使用規(guī)范的命名空間。這三種類型都要遵守以下規(guī)范常量類常量必須由大寫字母組成,單詞間由下劃線組成。一旦使用了其中的某一項命名凡是,應該在一定的代碼內(nèi)保持一致庫,包,類,或者方法范圍內(nèi)。 基本編碼規(guī)范 此PHP標準包含了如何去編寫高通用性代碼中那些標準元素(class,function ,ect.)的正確姿勢!在RFC 2119文檔中描述了關鍵...
摘要:前言在開始之前,歡迎關注我自己的博客這篇文章是對自動加載功能的一個總結,內(nèi)容涉及的自動加載功能的命名空間的與標準等內(nèi)容。要實現(xiàn)第一步,第二步的功能,必須在開發(fā)時約定類名與磁盤文件的映射方法,只有這樣我們才能根據(jù)類名找到它對應的磁盤文件。 前言 在開始之前,歡迎關注我自己的博客:www.leoyang90.cn 這篇文章是對PHP自動加載功能的一個總結,內(nèi)容涉及PHP的自動加載功能、P...
閱讀 3835·2021-10-12 10:12
閱讀 1464·2021-10-11 10:58
閱讀 2301·2021-10-09 10:01
閱讀 2611·2021-09-24 09:48
閱讀 2708·2021-09-09 11:38
閱讀 3533·2019-08-30 15:44
閱讀 1730·2019-08-30 14:22
閱讀 526·2019-08-29 12:42