




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PHP_CodeSniffer的應(yīng)用PHP_CodeSniffer是PEAR中的一個(gè)用PHP5寫的用來檢查嗅探PHP代碼是否有違反一組預(yù)先設(shè)置好的編碼標(biāo)準(zhǔn)的一個(gè)包,它能分析PHP程序,JAVASCRIP和CSS文件并且檢查出哪些是與定義好的代碼風(fēng)格相違背的。它是確保你的代碼簡(jiǎn)潔一致的必不可少的開發(fā)工具,甚至還可以幫助程序員減少一些語義錯(cuò)誤。它必須是在linux環(huán)境下運(yùn)行,安裝和使用網(wǎng)上有很多教程。認(rèn)識(shí)PHP_CodeSnifferPHP的PSR2規(guī)范PSR-0(AutoloadingStandard)自動(dòng)加載標(biāo)準(zhǔn)PSR-1(BasicCodingStandard)基礎(chǔ)編碼標(biāo)準(zhǔn)PSR-2(CodingStyleGuide)編碼風(fēng)格向?qū)SR-3(LoggerInterface)日志接口FIG組織在制定跟PHP相關(guān)規(guī)范,簡(jiǎn)稱PSR。目前已有4個(gè)代碼規(guī)范,為了減少不同開發(fā)者在瀏覽代碼時(shí)減少認(rèn)知的差異。為此列舉一組如何格式化PHP代碼的共用規(guī)則。各個(gè)成員項(xiàng)目的共性組成了本文的樣式規(guī)則。當(dāng)不同的開發(fā)者在不同的項(xiàng)目中合作時(shí),將會(huì)在這些不同的項(xiàng)目中使用一個(gè)共同的標(biāo)準(zhǔn)。因此,本指南的好處不在于規(guī)則本身,而在于共用這些規(guī)則。RFC2119中的必須(MUST),不可(MUSTNOT),建議(SHOULD),不建議(SHOULDNOT),可以/可能(MAY)等關(guān)鍵詞將在本節(jié)用來做一些解釋性的描述。PSR2介紹1、代碼必須遵守
PSR-1。2、代碼必須使用4個(gè)空格來進(jìn)行縮進(jìn),而不是用制表符(
tab)。3、一行代碼的長(zhǎng)度不建議有硬限制;軟限制必須為120個(gè)字符,建議每行代碼80個(gè)字符或者更少。4、在命名空間(namespace)的聲明下面必須有一行空行,并且在導(dǎo)入(use)的聲明下面也必須有一行空行。5、類(class)的左大括號(hào)必須放到其聲明下面自成一行,右大括號(hào)則必須放到類主體下面自成一行。6、方法(method)的左大括號(hào)必須放到其聲明下面自成一行,右大括號(hào)則必須放到方法主體的下一行。7、所有的屬性(property)和方法(method)
必須有可見性聲明;抽象(abstract)和終結(jié)(final)聲明必須在可見性聲明之前;而靜態(tài)(static)聲明必須在可見性聲明之后。譯注:屬性:private、protected以及public這幾個(gè)封裝屬性、函式用的文字。8、在控制結(jié)構(gòu)(controlstructure)關(guān)鍵字的后面必須有一個(gè)空格;而方法(method)和函數(shù)(function)的關(guān)鍵字的后面不可有空格。9、控制結(jié)構(gòu)的左大括號(hào)必須跟其放在同一行,右大括號(hào)必須放在該控制結(jié)構(gòu)代碼主體的下一行。10、控制結(jié)構(gòu)的左括號(hào)之后不可有空格,右括號(hào)之前也不可有空格。1.總覽這個(gè)示例中簡(jiǎn)單展示了上文中提到的一些規(guī)則:
1.1范例2.1基礎(chǔ)代碼規(guī)范代碼必須遵守
PSR-1
中的所有規(guī)則。2.2源文件所有的PHP源文件必須使用UnixLF(換行)作為行結(jié)束符。所有PHP源文件必須以一個(gè)空行結(jié)束。純PHP代碼源文件的關(guān)閉標(biāo)簽?>
必須省略。2.3.行行長(zhǎng)度不可有硬限制。行長(zhǎng)度的軟限制必須是120個(gè)字符;對(duì)于軟限制,代碼風(fēng)格檢查器必須警告但不可報(bào)錯(cuò)。一行代碼的長(zhǎng)度不建議超過80個(gè)字符;較長(zhǎng)的行建議拆分成多個(gè)不超過80個(gè)字符的子行。在非空行后面不可有空格??招锌梢杂脕碓鰪?qiáng)可讀性和區(qū)分相關(guān)代碼塊。一行不可多于一個(gè)語句。2.通則2.4.縮進(jìn)代碼必須使用4個(gè)空格,且不可使用制表符來作為縮進(jìn)。注意:代碼中只使用空格,且不和制表符混合使用,將會(huì)對(duì)避免代碼差異,補(bǔ)丁,歷史和注解中的一些問題有幫助。空格的使用還可以使通過調(diào)整細(xì)微的縮進(jìn)來改進(jìn)行間對(duì)齊變得更加的簡(jiǎn)單。2.5.關(guān)鍵字和True/False/NullPHP關(guān)鍵字(keywords)必須使用小寫字母。PHP常量true,
false和null
必須使用小寫字母。命名空間(namespace)的聲明后面必須有一行空行。所有的導(dǎo)入(use)聲明必須放在命名空間(namespace)聲明的下面。一句聲明中,必須只有一個(gè)導(dǎo)入(use)關(guān)鍵字。在導(dǎo)入(use)聲明代碼塊后面必須有一行空行。示例:3.
命名空間(Namespace)和導(dǎo)入(Use)聲明4.1.
擴(kuò)展(extend)和實(shí)現(xiàn)(implement)一個(gè)類的擴(kuò)展(extend)和實(shí)現(xiàn)(implement)關(guān)鍵詞必須和類名(classname)在同一行。類(class)的左大括號(hào)必須放在下面自成一行;右大括號(hào)必須放在類(class)主體的后面自成一行。4.
類(class),屬性(property)和方法(method)實(shí)現(xiàn)(implement)列表可以被拆分為多個(gè)縮進(jìn)了一次的子行。如果要拆成多個(gè)子行,列表的第一項(xiàng)必須要放在下一行,并且每行必須只有一個(gè)接口(interface)。所有的屬性(property)都必須聲明其可見性。變量(var)關(guān)鍵字不可用來聲明一個(gè)屬性(property)。一條語句不可聲明多個(gè)屬性(property)。屬性名(propertyname)
不推薦用單個(gè)下劃線作為前綴來表明其保護(hù)(protected)或私有(private)的可見性。一個(gè)屬性(property)聲明看起來應(yīng)該像下面這樣。4.2.
屬性(property)所有的方法(method)都必須聲明其可見性。方法名(methodname)
不推薦用單個(gè)下劃線作為前綴來表明其保護(hù)(protected)或私有(private)的可見性。方法名(methodname)在其聲明后面不可有空格跟隨。其左大括號(hào)必須放在下面自成一行,且右大括號(hào)必須放在方法主體的下面自成一行。左括號(hào)后面不可有空格,且右括號(hào)前面也不可有空格。一個(gè)方法(method)聲明看來應(yīng)該像下面這樣。注意括號(hào),逗號(hào),空格和花括號(hào)的位置:4.3.
方法(method)在參數(shù)列表中,逗號(hào)之前不可有空格,而逗號(hào)之后則必須要有一個(gè)空格。方法(method)中有默認(rèn)值的參數(shù)必須放在參數(shù)列表的最后面。4.4.
方法(method)的參數(shù)參數(shù)列表可以被拆分為多個(gè)縮進(jìn)了一次的子行。如果要拆分成多個(gè)子行,參數(shù)列表的第一項(xiàng)必須放在下一行,并且每行必須只有一個(gè)參數(shù)。當(dāng)參數(shù)列表被拆分成多個(gè)子行,右括號(hào)和左花括號(hào)之間必須又一個(gè)空格并且自成一行。當(dāng)出現(xiàn)abstract以及final聲明時(shí),一定(MUST)要在將之聲明于可視屬性(visbility)之前。當(dāng)出現(xiàn)static聲明時(shí),一定(MUST)要將之聲明于可視屬性(visbility)之后。4.5.
抽象(abstract),終結(jié)(final)和
靜態(tài)(static)當(dāng)建立一個(gè)方法(method)或是函式(function)時(shí),在函式名稱以及開始括號(hào)之間一定不要有空白,而開始括號(hào)后與結(jié)束括號(hào)前也一定不要(MUSTNOT)有空白。在參數(shù)列所用的逗號(hào)前一定不要有空白,而每個(gè)逗號(hào)后一要有空白。參數(shù)列可以拆成多行,而每行都縮排。若是要這么做,第一個(gè)參數(shù)一定要再下一行,而且每行就一定只有一個(gè)參數(shù)。4.6.調(diào)用方法和函數(shù)下面是對(duì)于控制結(jié)構(gòu)代碼風(fēng)格的概括:在控制結(jié)構(gòu)的關(guān)鍵詞之后一定要用一個(gè)空白隔開。在左括號(hào)“(”之后一定不要有空白。在右括號(hào)“)”之前一定不要有空白。在右括號(hào)“)”以及開始大(花)括號(hào)”{“之間一定要有一個(gè)空白隔開。控制結(jié)構(gòu)的代碼主體必須進(jìn)行一次縮進(jìn)。控制結(jié)構(gòu)的右花括號(hào)“}”必須主體的下一行。每個(gè)控制結(jié)構(gòu)的代碼主體必須要被包覆在成對(duì)的大括號(hào)之間。這樣可是使代碼看上去更加標(biāo)準(zhǔn)化,并且加入新代碼的時(shí)候還可以因此而減少引入錯(cuò)誤的可能性。5.控制結(jié)構(gòu)一個(gè)if結(jié)構(gòu)看起來如下。請(qǐng)注意括號(hào)、空白以及大括號(hào)的位置;還有else以及elseif跟結(jié)束的大括號(hào)“}”在主體前的同一行里。5.1:
if,elseif,else一個(gè)switch結(jié)構(gòu)看起來如下。請(qǐng)注意括號(hào)、空白以及大括號(hào)的位置。case敘述一定要比switch再縮排一次,而關(guān)鍵詞break(或其他結(jié)束關(guān)鍵詞)的縮排層級(jí)一定是同于case的程序本體。如果一個(gè)有主體代碼的case結(jié)構(gòu)故意的繼續(xù)向下執(zhí)行則必須要有一個(gè)類似于//nobreak的注釋。5.2.
switch,case下面是一個(gè)while循環(huán)控制結(jié)構(gòu)的示例,注意其中括號(hào),空格和大括號(hào)的位置。同樣地,一個(gè)dowhile結(jié)構(gòu)看起來如下。請(qǐng)注意括號(hào)、空白以及大括號(hào)的位置。5.3.
while,dowhile一個(gè)for敘述看起來如下。請(qǐng)注意括號(hào)、空白以及大括號(hào)的位置。5.4for下面是一個(gè)foreach循環(huán)控制結(jié)構(gòu)的示例,注意其中括號(hào),空格和大括號(hào)的位置。5.5foreachtrycatch敘述如下。請(qǐng)注意括號(hào)、空白以及大括號(hào)位置。5.6.
try,
catch聲明閉包時(shí)所用的function關(guān)鍵字之后必須要有一個(gè)空格,而use關(guān)鍵字的前后都要有一個(gè)空格。閉包的左花括號(hào)必須跟其在同一行,而右大括號(hào)必須在閉包主體的下一行。閉包的參數(shù)列表和變量列表的左括號(hào)后面不可有空格,右括號(hào)的前面也不可有空格。閉包的參數(shù)列表和變量列表中逗號(hào)前面不可有空格,而逗號(hào)后面則必須有空格。閉包的參數(shù)列表中帶默認(rèn)值的參數(shù)必須放在參數(shù)列表的結(jié)尾部分。下面是一個(gè)閉包的示例。注意括號(hào),空格和大括號(hào)的位置。6.閉包參數(shù)列表和變量列表可以被拆分成多個(gè)縮進(jìn)了一級(jí)的子行。如果要拆分成多個(gè)子行,列表中的第一項(xiàng)必須放在下一行,并且每一行必須只放一個(gè)參數(shù)或變量。當(dāng)列表
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 時(shí)尚雜志插畫師聘用合同
- 內(nèi)科品管圈護(hù)理實(shí)踐應(yīng)用
- 大學(xué)生如何報(bào)考部隊(duì)文職
- 2024貿(mào)易公司簡(jiǎn)介范文大全(35篇)
- 直腸癌患者術(shù)后健康宣教
- 廣發(fā)銀行工作總結(jié)專用
- 心外護(hù)理工作流程優(yōu)化
- 護(hù)理實(shí)踐指南:手術(shù)室人員管理
- 教育家學(xué)術(shù)體系解析
- 創(chuàng)造力與想象力培養(yǎng)課件
- GB/T 44831-2024皮膚芯片通用技術(shù)要求
- 精神科火災(zāi)演練腳本
- 汽輪發(fā)電機(jī)組設(shè)備運(yùn)行記錄日?qǐng)?bào)表(正面) A2
- 15J403-1-樓梯欄桿欄板(一)
- 2024年婦幼健康“三基”培訓(xùn)考試復(fù)習(xí)題庫-下(多選、判斷題)
- 子癇的搶救和護(hù)理
- 2025年高考政治一輪復(fù)習(xí):統(tǒng)編版必修3《政治與法治》必背考點(diǎn)知識(shí)講義
- 民政統(tǒng)計(jì)信息管理系統(tǒng)培訓(xùn)手冊(cè)街鄉(xiāng)鎮(zhèn)
- 中職英語新課標(biāo)詞匯表
- 2024秋期國(guó)家開放大學(xué)《國(guó)際法》一平臺(tái)在線形考(形考任務(wù)1至5)試題及答案
- 天翼云從業(yè)者認(rèn)證考試題庫及答案
評(píng)論
0/150
提交評(píng)論