成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP 規(guī)范之PSR規(guī)范

BothEyes1993 / 3449人閱讀

摘要:參考自動(dòng)加載已廢棄基本代碼規(guī)范代碼樣式日志接口如何指定文件路徑從而自動(dòng)加載類定義基本代碼規(guī)范本篇規(guī)范制定了代碼基本元素的相關(guān)標(biāo)準(zhǔn),以確保共享的代碼間具有較高程度的技術(shù)互通性。

概述

PSR 不是PHP官方標(biāo)準(zhǔn),而是從如Zend、Symfony2等知名PHP項(xiàng)目中提煉出來(lái)的一系列標(biāo)準(zhǔn),目前有越來(lái)越多的社區(qū)項(xiàng)目加入并遵循該標(biāo)準(zhǔn)。

參考:http://psr.phphub.org/

PSR-0 自動(dòng)加載 X已廢棄
PSR-1 基本代碼規(guī)范
PSR-2 代碼樣式
PSR-3 日志接口
PSR-4 如何指定文件路徑從而自動(dòng)加載類定義
PSR-1基本代碼規(guī)范

本篇規(guī)范制定了代碼基本元素的相關(guān)標(biāo)準(zhǔn),以確保共享的PHP代碼間具有較高程度的技術(shù)互通性。

文件

PHP代碼文件 必須 以

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

PHP代碼中 應(yīng)該 只定義類、函數(shù)、常量等聲明,或其他會(huì)產(chǎn)生 副作用 的操作

(如:生成文件輸出以及修改 .ini配置文件等),二者只能選其一;

命名空間與類

類命名 必須 遵循 StudlyCaps 大寫(xiě)開(kāi)頭的駝峰命名規(guī)范;

每個(gè)類都獨(dú)立為一個(gè)文件,且命名空間至少有一個(gè)層次:頂級(jí)的組織名稱(vendorname)

類屬性:小寫(xiě)開(kāi)頭駝峰 $studlyCaps

類方法:小寫(xiě)開(kāi)頭駝峰

常量

類中的常量所有字母都 必須 大寫(xiě),單詞間用下劃線分隔;

方法名稱 必須 符合 camelCase 式的小寫(xiě)開(kāi)頭駝峰命名規(guī)范。

PSR-2編碼風(fēng)格規(guī)范

縮進(jìn)

代碼 必須 使用4個(gè)空格符而不是「Tab 鍵」進(jìn)行縮進(jìn)。

每行的字符數(shù) 應(yīng)該 軟性保持在 80 個(gè)之內(nèi),一定不可 多于 120 個(gè),但 一定不可 有硬性限制。

所有PHP文件必須以一個(gè)空白行作為結(jié)束。

每行 一定不可存在多于一條語(yǔ)句 每個(gè) namespace 命名空間聲明語(yǔ)句和 use 聲明語(yǔ)句塊后面,必須 插入一個(gè)空白行。

類的開(kāi)始花括號(hào)({) 必須 寫(xiě)在函數(shù)聲明后自成一行,結(jié)束花括號(hào)(})也 必須寫(xiě)在函數(shù)主體后自成一行。

方法的開(kāi)始花括號(hào)({) 必須 寫(xiě)在函數(shù)聲明后自成一行,結(jié)束花括號(hào)(})也 必須 寫(xiě)在函數(shù)主體后自成一行。

控制結(jié)構(gòu)的開(kāi)始花括號(hào)({) 必須 寫(xiě)在聲明的同一行,而結(jié)束花括號(hào)(}) 必須 寫(xiě)在主體后自成一行。

修飾符

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

空格

類方法參數(shù)每個(gè)逗號(hào)后面必須要有一個(gè)空格,而逗號(hào)前面 一定不可 有空格

控制結(jié)構(gòu)的開(kāi)始左括號(hào)后和結(jié)束右括號(hào)前,都 一定不可 有空格符。

關(guān)鍵字

控制結(jié)構(gòu)的關(guān)鍵字后必須要有一個(gè)空格符,而調(diào)用方法或函數(shù)時(shí)則一定不可有。

PHP所有 關(guān)鍵字 必須 全部小寫(xiě),常量 true 、false 和 null 也 必須 全部小寫(xiě)。

PSR-3日志接口規(guī)范

LoggerInterface 接口對(duì)外定義了八個(gè)方法,分別用來(lái)記錄 RFC 5424 中定義的八個(gè)等級(jí)的日志:debug、 info、 notice、 warning、 error、 critical、 alert 以及 emergency 。

第九個(gè)方法 —— log,其第一個(gè)參數(shù)為記錄的等級(jí)。可使用一個(gè)預(yù)先定義的等級(jí)常量作為參數(shù)來(lái)調(diào)用此方法,必須 與直接調(diào)用以上八個(gè)方法具有相同的效果。

如果傳入的等級(jí)常量參數(shù)沒(méi)有預(yù)先定義,則 必須 拋出PsrLogInvalidArgumentException 類型的異常。在不確定的情況下,使用者 不該 使用未支持的等級(jí)常量來(lái)調(diào)用此方法。

/**

 * 日志等級(jí)常量定義

 */

class LogLevel

{

    constEMERGENCY="emergency";

    constALERT     ="alert";

    constCRITICAL  ="critical";

    constERROR     ="error";

    constWARNING   ="warning";

    constNOTICE    ="notice";

    constINFO      ="info";

    constDEBUG     ="debug";

}
PSR-4自動(dòng)加載規(guī)范

類似如下范例:()*

完全合規(guī)類名必須有一個(gè)頂級(jí)命名空間(Vendor Name)

完全合規(guī)類名可以有多個(gè)子命名空間

完全合規(guī)類名應(yīng)該有一個(gè)終止類名

下劃線在完全合規(guī)類名中是沒(méi)有特殊含義的

字母在完全合規(guī)類名中可以是任何大小寫(xiě)的組合

所有類名必須以大小寫(xiě)敏感的方式引用

終止類名對(duì)應(yīng)一個(gè)以 .php 結(jié)尾的文件。文件名必須和終止類名大小寫(xiě)匹配

一些實(shí)際商用項(xiàng)目中使用的規(guī)范

控制層

不出現(xiàn)sql語(yǔ)句(sql封裝到模型層然后作為方法調(diào)用)

sql語(yǔ)句、3行以上邏輯代碼空行

上下文關(guān)系函數(shù)或方法間不空行

bool使用if(true === $name)的形式

使用雙引號(hào)鏈接變量

注意隱式轉(zhuǎn)換

使用全局變量需要注釋其含義,取值范圍:

8 函數(shù)頭部如下注釋:

或者

9 注釋間空行:

10 文件頭部注釋:

或者

11 switch語(yǔ)句的case跳轉(zhuǎn)需要注釋

12 標(biāo)記變量的命名:

13 接口的命名前綴

14 狀態(tài)碼盡量使用常量,而不是難以理解的數(shù)字

15 類文件名使用首大寫(xiě)駝峰方式,普通文件名使用下劃線方式

16 配置里的變量名使用下劃線方式

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30757.html

相關(guān)文章

  • PHP代碼修正CodeSniffer

    摘要:它包含兩類腳本,和地址腳本對(duì)文件定義了一系列的代碼規(guī)范通常使用官方的代碼規(guī)范標(biāo)準(zhǔn),比如的,能夠檢測(cè)出不符合代碼規(guī)范的代碼并發(fā)出警告或報(bào)錯(cuò)可設(shè)置報(bào)錯(cuò)等級(jí)。腳本能自動(dòng)修正代碼格式上不符合規(guī)范的部分。 Last-Modified: 2019年5月10日13:59:27 參考鏈接 PHP開(kāi)發(fā)規(guī)范之使用phpcbf腳本自動(dòng)修正代碼格式 在PhpStorm中使用PSR2編碼規(guī)范phpcbf腳本自...

    khs1994 評(píng)論0 收藏0
  • PHP 系列:代碼規(guī)范 Code Sniffer

    摘要:腳本對(duì)文件定義了一系列的代碼規(guī)范通常使用官方的代碼規(guī)范標(biāo)準(zhǔn),比如的,能夠檢測(cè)出不符合代碼規(guī)范的代碼并發(fā)出警告或報(bào)錯(cuò)可設(shè)置報(bào)錯(cuò)等級(jí)。比如規(guī)范中對(duì)每一個(gè)文件的結(jié)尾都需要有一行空行,那么運(yùn)行這個(gè)腳本后就能自動(dòng)在結(jié)尾處加上一行空行。 showImg(https://segmentfault.com/img/remote/1460000011338137); 有些同學(xué)可能還沒(méi)聽(tīng)過(guò)這東西,大概介紹...

    0xE7A38A 評(píng)論0 收藏0
  • PHP-PSR 現(xiàn)代PHPer的開(kāi)發(fā)規(guī)范

    摘要:的使命是實(shí)現(xiàn)框架之間的互操作性。個(gè)人和官方都認(rèn)為開(kāi)發(fā)者應(yīng)該遵循更為嚴(yán)格的代碼標(biāo)準(zhǔn),在現(xiàn)代的生態(tài)系統(tǒng)中,風(fēng)格統(tǒng)一,可以更好的讓其他開(kāi)發(fā)者理解代碼。記錄的消息用于診斷檢查和排除應(yīng)用中的操作穩(wěn)定性和性能方面的問(wèn)題。 原文是在我自己博客中,小伙伴也可以點(diǎn)閱讀原文進(jìn)行跳轉(zhuǎn)查看,還有好聽(tīng)的背景音樂(lè)噢~ ????PSR是PHP Standards Recommendation的簡(jiǎn)稱,意為PHP推薦標(biāo)...

    zebrayoung 評(píng)論0 收藏0
  • PHP規(guī)范PSR-1

    摘要:命名空間需要遵循自動(dòng)加載規(guī)范。和之后的版本必須使用規(guī)范的命名空間。這三種類型都要遵守以下規(guī)范常量類常量必須由大寫(xiě)字母組成,單詞間由下劃線組成。一旦使用了其中的某一項(xiàng)命名凡是,應(yīng)該在一定的代碼內(nèi)保持一致庫(kù),包,類,或者方法范圍內(nèi)。 基本編碼規(guī)范 此PHP標(biāo)準(zhǔn)包含了如何去編寫(xiě)高通用性代碼中那些標(biāo)準(zhǔn)元素(class,function ,ect.)的正確姿勢(shì)!在RFC 2119文檔中描述了關(guān)鍵...

    stormjun 評(píng)論0 收藏0
  • PHP自動(dòng)加載功能原理解析

    摘要:前言在開(kāi)始之前,歡迎關(guān)注我自己的博客這篇文章是對(duì)自動(dòng)加載功能的一個(gè)總結(jié),內(nèi)容涉及的自動(dòng)加載功能的命名空間的與標(biāo)準(zhǔn)等內(nèi)容。要實(shí)現(xiàn)第一步,第二步的功能,必須在開(kāi)發(fā)時(shí)約定類名與磁盤(pán)文件的映射方法,只有這樣我們才能根據(jù)類名找到它對(duì)應(yīng)的磁盤(pán)文件。 前言 在開(kāi)始之前,歡迎關(guān)注我自己的博客:www.leoyang90.cn 這篇文章是對(duì)PHP自動(dòng)加載功能的一個(gè)總結(jié),內(nèi)容涉及PHP的自動(dòng)加載功能、P...

    Imfan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<