摘要:目前已表決通過了套標(biāo)準(zhǔn),已經(jīng)得到大部分框架的支持和認(rèn)可。類中的常量所有字母都必須大寫,單詞間用下劃線分隔方法名稱必須符合式的小寫開頭駝峰命名規(guī)范。日志接口規(guī)范詳見自動(dòng)加載規(guī)范詳見緩存接口規(guī)范詳見消息接口規(guī)范詳見,暫無中文翻譯
PHP-FIG
在說啥是PSR-[0-4]規(guī)范的之前,我覺得我們有必要說下它的發(fā)明者和規(guī)范者:PHP-FIG。就是這個(gè)聯(lián)盟組織發(fā)明和創(chuàng)造了PSR-[0-4]規(guī)范
FIG 是 Framework Interoperability Group(框架可互用性小組)的縮寫,由幾位開源框架的開發(fā)者成立于
2009 年,從那開始也選取了很多其他成員進(jìn)來,雖然不是 “官方” 組織,但也代表了社區(qū)中不小的一塊。
項(xiàng)目的目的在于:通過框架作者或者框架的代表之間討論,以最低程度的限制,制定一個(gè)協(xié)作標(biāo)準(zhǔn),各個(gè)框架遵循統(tǒng)一的編碼規(guī)范,避免各家自行發(fā)展的風(fēng)格阻礙了
PHP 的發(fā)展,解決這個(gè)程序設(shè)計(jì)師由來已久的困擾。目前已表決通過了 6 套標(biāo)準(zhǔn),已經(jīng)得到大部分 PHP 框架的支持和認(rèn)可。
1 基礎(chǔ)編碼規(guī)范 PSR-1
2 編碼風(fēng)格規(guī)范 PSR-2
3 日志接口規(guī)范 PSR-3
4 自動(dòng)加載規(guī)范 PSR-4
6 緩存接口規(guī)范 PSR-6
7 HTTP 消息接口規(guī)范
PHP代碼文件 必須 以 或 = 標(biāo)簽開始;
PHP代碼文件 必須 以 不帶 BOM 的 UTF-8 編碼;
PHP代碼中 應(yīng)該 只定義類、函數(shù)、常量等聲明,或其他會(huì)產(chǎn)生 副作用 的操作(如:生成文件輸出以及修改 .ini配置文件等),二者只能選其一;
「副作用」(side effects) 一詞的意思是,僅僅通過包含文件,不直接聲明類、函數(shù)和常量等,而執(zhí)行的邏輯操作。
「副作用」包含卻不僅限于:生成輸出
直接的 require 或 include
連接外部服務(wù)
修改 ini 配置
拋出錯(cuò)誤或異常
修改全局或靜態(tài)變量
讀或?qū)懳募?/p>
以下是一個(gè) 反例,一份包含「函數(shù)聲明」以及產(chǎn)生「副作用」的代碼:
"; // 聲明函數(shù) function foo() { // 函數(shù)主體部分 }
下面是一個(gè)僅包含聲明的示例文件;即應(yīng)提倡的例子:
命名空間以及類 必須 符合 PSR 的自動(dòng)加載規(guī)范:[PSR-4]() 中的一個(gè);
類的命名必須 遵循 StudlyCaps 大寫開頭的駝峰命名規(guī)范;
類的屬性命名 可以 遵循:
大寫開頭的駝峰式 ($StudlyCaps)
小寫開頭的駝峰式 ($camelCase)
下劃線分隔式 ($under_score)
本規(guī)范不做強(qiáng)制要求,但無論遵循哪種命名方式,都 應(yīng)該 在一定的范圍內(nèi)保持一致。這個(gè)范圍可以是整個(gè)團(tuán)隊(duì)、整個(gè)包、整個(gè)類或整個(gè)方法。
類中的常量所有字母都 必須 大寫,單詞間用下劃線分隔;
方法名稱 必須 符合 camelCase 式的小寫開頭駝峰命名規(guī)范。
編碼風(fēng)格規(guī)范代碼必須遵守 PSR-1。
代碼必須使用4個(gè)空格來進(jìn)行縮進(jìn),而不是用制表符。
一行代碼的長(zhǎng)度不建議有硬限制;軟限制必須為120個(gè)字符,建議每行代碼80個(gè)字符或者更少。
在命名空間(namespace)的聲明下面必須有一行空行,并且在導(dǎo)入(use)的聲明下面也必須有一行空行。
類(class)的左花括號(hào)必須放到其聲明下面自成一行,右花括號(hào)則必須放到類主體下面自成一行。
方法(method)的左花括號(hào)必須放到其聲明下面自成一行,右花括號(hào)則必須放到方法主體的下一行。
$b) { $foo->bar($arg1); } else { BazClass::bar($arg2, $arg3); } } final public static function bar() { // 方法主體 } }
所有的屬性(property)和方法(method)必須有可見性聲明;抽象(abstract)和終結(jié)(final)聲明必須在可見性聲明之前;而靜態(tài)(static)聲明必須在可見性聲明之后。
在控制結(jié)構(gòu)關(guān)鍵字的后面必須有一個(gè)空格;而方法(method)和函數(shù)(function)的關(guān)鍵字的后面不可有空格。
控制結(jié)構(gòu)的左花括號(hào)必須跟其放在同一行,右花括號(hào)必須放在該控制結(jié)構(gòu)代碼主體的下一行。
控制結(jié)構(gòu)的左括號(hào)之后不可有空格,右括號(hào)之前也不可有空格。
日志接口規(guī)范詳見
自動(dòng)加載規(guī)范詳見
緩存接口規(guī)范詳見
HTTP 消息接口規(guī)范詳見,暫無中文翻譯
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/28521.html
摘要:的使命是實(shí)現(xiàn)框架之間的互操作性。個(gè)人和官方都認(rèn)為開發(fā)者應(yīng)該遵循更為嚴(yán)格的代碼標(biāo)準(zhǔn),在現(xiàn)代的生態(tài)系統(tǒng)中,風(fēng)格統(tǒng)一,可以更好的讓其他開發(fā)者理解代碼。記錄的消息用于診斷檢查和排除應(yīng)用中的操作穩(wěn)定性和性能方面的問題。 原文是在我自己博客中,小伙伴也可以點(diǎn)閱讀原文進(jìn)行跳轉(zhuǎn)查看,還有好聽的背景音樂噢~ ????PSR是PHP Standards Recommendation的簡(jiǎn)稱,意為PHP推薦標(biāo)...
摘要:公認(rèn)規(guī)范總結(jié)規(guī)范中文版大部分來源翻譯部分包含例子,附錄包含了一些規(guī)范的實(shí)現(xiàn)基本編碼標(biāo)準(zhǔn)編碼風(fēng)格指南日志接口規(guī)范自動(dòng)加載規(guī)范規(guī)范英文版未使用草案已棄用規(guī)范原理實(shí)現(xiàn)實(shí)現(xiàn)自動(dòng)加載實(shí)現(xiàn)原理資料來源與參考 PSR公認(rèn)規(guī)范總結(jié) PSR規(guī)范中文版(大部分來源google翻譯)(cn) 部分psr包含例子,附錄包含了一些規(guī)范的實(shí)現(xiàn) PSR-1:基本編碼標(biāo)準(zhǔn) PSR-2:編碼風(fēng)格指南 PSR-3:日志...
摘要:注本文算是筆者對(duì)規(guī)范翻譯學(xué)習(xí)筆記,之后會(huì)陸續(xù)翻譯剩余的規(guī)范,可能翻譯的有錯(cuò)誤的地方,希望讀者能夠指正,非常感謝什么是是標(biāo)準(zhǔn)建議的簡(jiǎn)寫,是由組織框架交互操作組織提出。的工作是尋找項(xiàng)目之間的共性,以及讓開發(fā)者能更好協(xié)同工作的方式。 注:本文算是筆者對(duì)PSR規(guī)范翻譯/學(xué)習(xí)筆記,之后會(huì)陸續(xù)翻譯剩余的規(guī)范,可能翻譯的有錯(cuò)誤的地方,希望讀者能夠指正,非常感謝. 什么是PSR? ? ??? PSR是...
摘要:標(biāo)準(zhǔn)規(guī)范簡(jiǎn)介是的簡(jiǎn)寫,由組織制定的規(guī)范,是開發(fā)的實(shí)踐標(biāo)準(zhǔn)。具體標(biāo)準(zhǔn)有有了統(tǒng)一編碼風(fēng)格規(guī)范,更有利于查看和學(xué)習(xí)各個(gè)框架或類庫,不不需要每次都適應(yīng)新的編碼風(fēng)格。同時(shí)在開發(fā)團(tuán)隊(duì)內(nèi)部使用統(tǒng)一的編碼規(guī)范更有利于代碼審查版本控制團(tuán)隊(duì)內(nèi)部交流。 PHP 標(biāo)準(zhǔn)規(guī)范 PSR PSR 簡(jiǎn)介 PSR 是 PHP Standard Recommendations 的簡(jiǎn)寫,由 PHP FIG 組織制定的 PHP...
摘要:是一系列關(guān)于開發(fā)的規(guī)范,分有好幾個(gè)版本,自己學(xué)的也較為膚淺,但還是希望能時(shí)常查看規(guī)范,為了方便記憶和遵循,我把關(guān)鍵詞為必須的撿拾出來,做個(gè)簡(jiǎn)單地必要規(guī)范的記錄。所有文件必須使用作為行的結(jié)束符。 PSR是一系列關(guān)于PHP開發(fā)的規(guī)范,分有好幾個(gè)版本,自己學(xué)的也較為膚淺,但還是希望能時(shí)常查看規(guī)范,為了方便記憶和遵循,我把關(guān)鍵詞為必須的撿拾出來,做個(gè)簡(jiǎn)單地必要規(guī)范的記錄。(就是個(gè)搬磚的。。。)...
閱讀 1089·2021-10-14 09:42
閱讀 1386·2021-09-22 15:11
閱讀 3295·2019-08-30 15:56
閱讀 1257·2019-08-30 15:55
閱讀 3623·2019-08-30 15:55
閱讀 897·2019-08-30 15:44
閱讀 2033·2019-08-29 17:17
閱讀 2081·2019-08-29 15:37