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