摘要:是一系列關(guān)于開發(fā)的規(guī)范,分有好幾個版本,自己學(xué)的也較為膚淺,但還是希望能時常查看規(guī)范,為了方便記憶和遵循,我把關(guān)鍵詞為必須的撿拾出來,做個簡單地必要規(guī)范的記錄。所有文件必須使用作為行的結(jié)束符。
官方發(fā)布文件版本PSR是一系列關(guān)于PHP開發(fā)的規(guī)范,分有好幾個版本,自己學(xué)的也較為膚淺,但還是希望能時常查看規(guī)范,為了方便記憶和遵循,我把關(guān)鍵詞為必須的撿拾出來,做個簡單地必要規(guī)范的記錄。(就是個搬磚的。。。)
https://github.com/PizzaLiu/PHP-FIG
http://segmentfault.com/a/1190000002521577
PSR-0(已棄用)
PSR-1 基本代碼規(guī)范
PSR-2 代碼風(fēng)格規(guī)范
PSR-2 補(bǔ)充文檔
PSR-3 日志接口規(guī)范
PSR-4 自動載入
PSR-5和PSR-6投票還未通過
必須 PSR-1 基本代碼規(guī)范PHP代碼文件必以 ;
PHP代碼文件必須以 不帶BOM的 UTF-8 編碼;
命名空間以及類必須符合 PSR 的自動加載規(guī)范:PSR-0 或 PSR-4 中的一個;
類的命名必須遵循 StudlyCaps 大寫開頭的駝峰命名規(guī)范;
類中的常量所有字母都必須大寫,單詞間用下劃線分隔;
方法名稱必須符合 camelCase 式的小寫開頭駝峰命名規(guī)范。
PHP代碼必須使用 長標(biāo)簽 或 = ?> 短輸出標(biāo)簽; 一定不可使用其它自定義標(biāo)簽。
命名空間以及類的命名必須遵循 PSR-0.
PHP 5.3及以后版本的代碼必須使用正式的命名空間。
每個類都獨(dú)立為一個文件,且命名空間至少有一個層次:頂級的組織名稱(vendor name)
PSR-2 代碼風(fēng)格規(guī)范代碼必須遵循 PSR-1 中的編碼規(guī)范 。
代碼必須使用4個空格符而不是 tab鍵 進(jìn)行縮進(jìn)。
備注: 使用空格而不是tab鍵縮進(jìn)的好處在于, 避免在比較代碼差異、打補(bǔ)丁、重閱代碼以及注釋時產(chǎn)生混淆。 并且,使用空格縮進(jìn),讓對齊變得更方便。
每個 namespace 命名空間聲明語句和 use 聲明語句塊后面,必須插入一個空白行。
類的開始花括號({)必須寫在函數(shù)聲明后自成一行,結(jié)束花括號(})也必須寫在函數(shù)主體后自成一行。
方法的開始花括號({)必須寫在函數(shù)聲明后自成一行,結(jié)束花括號(})也必須寫在函數(shù)主體后自成一行。
類的屬性和方法必須 添加訪問修飾符(private、protected 以及 public), abstract 以及 final 必須聲明在訪問修飾符之前,而 static 必須聲明在訪問修飾符之后。
控制結(jié)構(gòu)的關(guān)鍵字后必須要有一個空格符,而調(diào)用方法或函數(shù)時則一定不能有。
控制結(jié)構(gòu)的開始花括號({)必須寫在聲明的同一行,而結(jié)束花括號(})必須寫在主體后自成一行。
控制結(jié)構(gòu)的開始左括號后和結(jié)束右括號前,都一定不能有空格符。
所有PHP文件必須使用Unix LF (linefeed)作為行的結(jié)束符。
所有PHP文件必須以一個空白行作為結(jié)束。
純PHP代碼文件必須省略最后的 ?> 結(jié)束標(biāo)簽。
每行一定不能存在多于一條語句。
非空行后一定不能有多余的空格符。
PHP所有 關(guān)鍵字必須全部小寫。
常量 true 、false 和 null 也必須全部小寫。
PSR-3 日志接口規(guī)范 PSR-4 自動加載規(guī)范一個完整的類名需具有以下結(jié)構(gòu):
<命名空間>(<子命名空間>)*<類名> 完整的類名必須要有一個頂級命名空間,被稱為 "vendor namespace"; 完整的類名可以有一個或多個子命名空間; 完整的類名必須有一個最終的類名; 完整的類名中任意一部分中的下滑線都是沒有特殊含義的; 完整的類名可以由任意大小寫字母組成; 所有類名都必須是大小寫敏感的。
當(dāng)根據(jù)完整的類名載入相應(yīng)的文件
完整的類名中,去掉最前面的命名空間分隔符,前面連續(xù)的一個或多個命名空間和子命名空間,作為“命名空間前綴”,其必須與至少一個“文件基目錄”相對應(yīng); 緊接命名空間前綴后的子命名空間必須與相應(yīng)的”文件基目錄“相匹配,其中的命名空間分隔符將作為目錄分隔符。 末尾的類名必須與對應(yīng)的以 .php 為后綴的文件同名。 自動加載器(autoloader)的實(shí)現(xiàn)一定不能拋出異常、一定不能觸發(fā)任一級別的錯誤信息以及不應(yīng)該有返回值。建議(更多請查看詳細(xì)文檔) PSR-1
PHP代碼中應(yīng)該只定義類、函數(shù)、常量等聲明,或其他會產(chǎn)生 從屬效應(yīng) 的操作(如:生成文件輸出以及修改.ini配置文件等),二者只能選其一;
類的屬性命名可以遵循 大寫開頭的駝峰式 ($StudlyCaps)、小寫開頭的駝峰式 ($camelCase) 又或者是 下劃線分隔式 ($under_score),本規(guī)范不做強(qiáng)制要求,但無論遵循哪種命名方式,都應(yīng)該在一定的范圍內(nèi)保持一致。
PSR-2每行的字符數(shù)應(yīng)該軟性保持在80個之內(nèi), 理論上一定不可多于120個, 但一定不能有硬性限制。
空行可以使得閱讀代碼更加方便以及有助于代碼的分塊。
代碼示例 PSR-2$b) { $foo->bar($arg1); } else { BazClass::bar($arg2, $arg3); } } final public static function bar() { // method body } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/21183.html
摘要:想要更好的利用協(xié)同工作,學(xué)會創(chuàng)建自己的包是一項(xiàng)必不可少的技能。編輯項(xiàng)目的或,增加一項(xiàng)配置,例如以上配置使用中國全量鏡像網(wǎng)站作為默認(rèn)中央倉庫。創(chuàng)建自己的包創(chuàng)建一個包只需兩步填寫包描述信息寫代碼。通過簡單兩步,我們創(chuàng)建的自己的包。 轉(zhuǎn)載請注明文章出處:https://tlanyan.me/php-review... PHP回顧系列目錄 PHP基礎(chǔ) web請求 cookie web響應(yīng) ...
摘要:標(biāo)準(zhǔn)規(guī)范簡介是的簡寫,由組織制定的規(guī)范,是開發(fā)的實(shí)踐標(biāo)準(zhǔn)。具體標(biāo)準(zhǔn)有有了統(tǒng)一編碼風(fēng)格規(guī)范,更有利于查看和學(xué)習(xí)各個框架或類庫,不不需要每次都適應(yīng)新的編碼風(fēng)格。同時在開發(fā)團(tuán)隊(duì)內(nèi)部使用統(tǒng)一的編碼規(guī)范更有利于代碼審查版本控制團(tuán)隊(duì)內(nèi)部交流。 PHP 標(biāo)準(zhǔn)規(guī)范 PSR PSR 簡介 PSR 是 PHP Standard Recommendations 的簡寫,由 PHP FIG 組織制定的 PHP...
摘要:注本文算是筆者對規(guī)范翻譯學(xué)習(xí)筆記,之后會陸續(xù)翻譯剩余的規(guī)范,可能翻譯的有錯誤的地方,希望讀者能夠指正,非常感謝什么是是標(biāo)準(zhǔn)建議的簡寫,是由組織框架交互操作組織提出。的工作是尋找項(xiàng)目之間的共性,以及讓開發(fā)者能更好協(xié)同工作的方式。 注:本文算是筆者對PSR規(guī)范翻譯/學(xué)習(xí)筆記,之后會陸續(xù)翻譯剩余的規(guī)范,可能翻譯的有錯誤的地方,希望讀者能夠指正,非常感謝. 什么是PSR? ? ??? PSR是...
摘要:公認(rèn)規(guī)范總結(jié)規(guī)范中文版大部分來源翻譯部分包含例子,附錄包含了一些規(guī)范的實(shí)現(xiàn)基本編碼標(biāo)準(zhǔn)編碼風(fēng)格指南日志接口規(guī)范自動加載規(guī)范規(guī)范英文版未使用草案已棄用規(guī)范原理實(shí)現(xiàn)實(shí)現(xiàn)自動加載實(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:日志...
摘要:制定的規(guī)范,簡稱,是開發(fā)的事實(shí)標(biāo)準(zhǔn)。原本有四個規(guī)范,分別是自動加載基本代碼規(guī)范代碼樣式日志接口年底,新出了第個規(guī)范。區(qū)別在于的規(guī)范比較干凈,去除了兼容以前版本的內(nèi)容,有一點(diǎn)升級版的感覺。 FIG制定的PHP規(guī)范,簡稱PSR,是PHP開發(fā)的事實(shí)標(biāo)準(zhǔn)。 PSR原本有四個規(guī)范,分別是: PSR-0 自動加載 PSR-1 基本代碼規(guī)范 PSR-2 代碼樣式 PSR-3 日志接口 20...
閱讀 1072·2021-11-12 10:34
閱讀 998·2021-09-30 09:56
閱讀 675·2019-08-30 15:54
閱讀 2610·2019-08-30 11:14
閱讀 1476·2019-08-29 16:44
閱讀 3215·2019-08-29 16:35
閱讀 2500·2019-08-29 16:22
閱讀 2451·2019-08-29 15:39