


編寫高效PHP代碼之質(zhì)量保證
添加時(shí)間:2014-6-27 17:40:38
添加:
思海網(wǎng)絡(luò)
一、使用靜態(tài)分析工具測(cè)量質(zhì)量
我們用靜態(tài)分析測(cè)量代碼而不運(yùn)行它。實(shí)際上,我們將這些工具用于評(píng)估代碼、讀取文件、衡量它所寫的要素。使用這些工具,可以幫助我們對(duì)代碼庫(kù)有一個(gè)完整的層次化的認(rèn)識(shí),甚至在代碼庫(kù)變得更大、更復(fù)雜的時(shí)候也能掌握。
靜態(tài)分析工具是項(xiàng)目過(guò)程中的一個(gè)關(guān)鍵組成部分,但是,只有定期使用它們,并以理想的方式進(jìn)行每一次提交,靜態(tài)分析工具才真正顯示出價(jià)值。這些工
具涵蓋了代碼的所有方面,從計(jì)數(shù)類和計(jì)算行數(shù),到識(shí)別哪里有提示使用復(fù)制和粘貼的類似代碼段。然后我們來(lái)看看靜態(tài)分析工具在代碼質(zhì)量中兩個(gè)特別關(guān)鍵的問(wèn)題
上如何幫助我們:編碼標(biāo)準(zhǔn)和文檔。
1、phploc
PHP代碼行(phploc)可能并不是一個(gè)非常有趣的靜態(tài)分析工具,但它確實(shí)給了我們一些有趣的信息,特別是隨著時(shí)間的推移當(dāng)我們反復(fù)運(yùn)行它的時(shí)候。phploc提供項(xiàng)目拓?fù)浣Y(jié)構(gòu)以及尺寸的相關(guān)信息。
例如測(cè)試一個(gè)標(biāo)準(zhǔn)的WordPress版本,我們只需使用如下命令:
$ phploc wordpress
2、phpcpd
PHP復(fù)制粘貼器(phpcpd)看起來(lái)是一個(gè)在代碼中尋找類似模式的工具,我們使用它是為了在代碼庫(kù)中識(shí)別代碼在何處被復(fù)制或粘貼。這是常規(guī)構(gòu)建過(guò)程中的一個(gè)非常有用的工具,但是從輸出中獲得正確的編號(hào)會(huì)讓項(xiàng)目與項(xiàng)目有所不同。
同樣,如果我們測(cè)試WordPress,可以使用下面的命令:
$ phpcpd wordpress
3、phpmd
PHP項(xiàng)目消息探測(cè)器(phpmd)是一個(gè)試圖量化所謂開(kāi)發(fā)老手所說(shuō)的“代碼發(fā)出的氣味”的工具。它使用一系列指標(biāo)尋找似乎失衡的項(xiàng)目元素。該工具生成大量的輸出,其中大部分都是好的建議,下面是一個(gè)要求phpmd在WordPress中檢查命名混亂的命令:
$ phpmd wordpress/ text naming
二、編碼標(biāo)準(zhǔn)
編碼標(biāo)準(zhǔn)是一個(gè)在很多開(kāi)發(fā)團(tuán)隊(duì)中引起激烈爭(zhēng)論的話題,既然縮進(jìn)和使用空格并未影響代碼的運(yùn)行,那為什么我們要?jiǎng)?chuàng)建格式化的規(guī)則并且嚴(yán)格遵守呢?事實(shí)上,當(dāng)我們已經(jīng)習(xí)慣于某個(gè)編碼風(fēng)格,而且代碼以我們期望的方式排列時(shí),它會(huì)變得更加容易閱讀。但是,在實(shí)際開(kāi)發(fā)過(guò)程中,很容易忘記規(guī)則,所以需要工具區(qū)檢查所有的代碼。
1、使用PHP代碼探測(cè)器檢查編碼標(biāo)準(zhǔn)
首先,你需要在服務(wù)器上安裝這個(gè)工具。無(wú)論它在開(kāi)發(fā)機(jī)器還是開(kāi)發(fā)服務(wù)器上,這完全取決于你所擁有的可用資源。
安裝后,就可以使用下面的命令測(cè)試代碼了:
phpcs --standard=PEAR robot.php
2、查看違反編碼標(biāo)準(zhǔn)的地方
PHP代碼探測(cè)器有幾個(gè)非常重要的報(bào)表樣式,你可以用它們看著所用代碼庫(kù)的“重點(diǎn)”、我們將這些以詳細(xì)報(bào)表的同樣方式輸出到屏幕上,它們也可以生成其他格式。
要生成一個(gè)匯總報(bào)表,只需這樣做:
phpcs --standard=PEAR --report=summary *
3、查看PHP代碼探測(cè)器標(biāo)準(zhǔn)
有幾個(gè)編碼標(biāo)準(zhǔn)是PHP代碼探測(cè)器默認(rèn)運(yùn)行的,你可以生成或設(shè)置任何自己的標(biāo)準(zhǔn)。若想看到有哪些可用的標(biāo)準(zhǔn),你可以運(yùn)行具有-i開(kāi)關(guān)的phpcs。
$ phpcs -i
三、文檔和代碼
使用phpDocumentor將注釋轉(zhuǎn)換為文檔。
例如:
phpdoc -t docs -o HTML:Smarty:PHP -d .
四、自動(dòng)部署
Phing 是一個(gè)基于Apache ANT 的項(xiàng)目構(gòu)建系統(tǒng)。Phing使用基于XML的配置,默認(rèn)保存在一個(gè)名為build.xml的文件中。
我們給這個(gè)項(xiàng)目命令,并定義一系列屬于這個(gè)項(xiàng)目的任務(wù),還可以指定哪些任務(wù)被默認(rèn)運(yùn)行,都可以通過(guò)Phing進(jìn)行配置。
關(guān)鍵字:PHP、服務(wù)器、質(zhì)量保證
關(guān)鍵字:PHP、服務(wù)器、質(zhì)量保證
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無(wú)AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解