學習PHP精粹,編寫高效PHP代碼之品質保證_PHP教程

來源:互聯網
上載者:User
一、使用靜態分析工具測量品質

我們用靜態分析測量代碼而不運行它。實際上,我們將這些工具用於評估代碼、讀取檔案、衡量它所寫的要素。使用這些工具,可以協助我們對程式碼程式庫有一個完整的層次化的認識,甚至在程式碼程式庫變得更大、更複雜的時候也能掌握。

靜態分析工具是項目過程中的一個關鍵組成部分,但是,只有定期使用它們,並以理想的方式進行每一次提交,靜態分析工具才真正顯示出價值。這些工具涵蓋了代碼的所有方面,從計數類和計算行數,到識別哪裡有提示使用複製和粘貼的類似程式碼片段。然後我們來看看靜態分析工具在代碼品質中兩個特別關鍵的問題上如何協助我們:編碼通訊協定和文檔。

1、phploc

phploc:https://github.com/sebastianbergmann/phploc

PHP程式碼(phploc)可能並不是一個非常有趣的靜態分析工具,但它確實給了我們一些有趣的資訊,特別是隨著時間的推移當我們反覆運行它的時候。phploc提供項目拓撲結構以及尺寸的相關資訊。

例如測試一個標準的WordPress版本,我們只需使用如下命令:

$ phploc wordpress

2、phpcpd

phpcpd:https://github.com/sebastianbergmann/phpcpd

PHP複製粘貼器(phpcpd)看起來是一個在代碼中尋找類似模式的工具,我們使用它是為了在程式碼程式庫中識別代碼在何處被複製或粘貼。這是常規構建過程中的一個非常有用的工具,但是從輸出中獲得正確的編號會讓項目與項目有所不同。

同樣,如果我們測試WordPress,可以使用下面的命令:

$ phpcpd wordpress

3、phpmd

phpmd:http://phpmd.org/

PHP項目訊息探測器(phpmd)是一個試圖量化所謂開發老手所說的“代碼發出的氣味”的工具。它使用一系列指標尋找似乎失衡的項目元素。該工具產生大量的輸出,其中大部分都是好的建議,下面是一個要求phpmd在WordPress中檢查命名混亂的命令:

$ phpmd wordpress/  text naming

二、編碼通訊協定

編碼通訊協定是一個在很多Team Dev中引起激烈爭論的話題,既然縮排和使用空格並未影響代碼的運行,那為什麼我們要建立格式化的規則並且嚴格遵守呢?事實上,當我們已經習慣於某個編碼風格,而且代碼以我們期望的方式排列時,它會變得更加容易閱讀。但是,在實際開發過程中,很容易忘記規則,所以需要工具區檢查所有的代碼。

1、使用PHP代碼探測器檢查編碼通訊協定

PHP代碼探測器:http://pear.php.net/package/PHP_CodeSniffer

首先,你需要在伺服器上安裝這個工具。無論它在開發機器還是程式開發伺服器上,這完全取決於你所擁有的可用資源。

安裝後,就可以使用下面的命令測試代碼了:

phpcs --standard=PEAR robot.php

2、查看違反編碼通訊協定的地方

PHP代碼探測器有幾個非常重要的報表樣式,你可以用它們看著所用程式碼程式庫的“重點”、我們將這些以詳細報表的同樣方式輸出到螢幕上,它們也可以產生其他格式。

要產生一個匯總報表,只需這樣做:

phpcs --standard=PEAR --report=summary *

3、查看PHP代碼探測器標準

有幾個編碼通訊協定是PHP代碼探測器預設啟動並執行,你可以產生或設定任何自己的標準。若想看到有哪些可用的標準,你可以運行具有-i開關的phpcs。

$ phpcs -i

三、文檔和代碼

使用phpDocumentor將注釋轉換為文檔。

phpDocumentor:http://www.phpdoc.org/

例如:

phpdoc -t docs -o HTML:Smarty:PHP -d .

四、原始程式碼控制

常用原始程式碼控制工具:

Subversion:http://subversion.apache.org/

Git:http://git-scm.com/

五、自動部署

Phing:http://www.phing.info/

Phing 是一個基於Apache ANT 的項目構建系統。Phing使用基於XML的配置,預設儲存在一個名為build.xml的檔案中。

我們給這個項目命令,並定義一系列屬於這個項目的任務,還可以指定哪些任務被預設運行,都可以通過Phing進行配置。

http://www.bkjia.com/PHPjc/780763.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/780763.htmlTechArticle一、使用靜態分析工具測量品質 我們用靜態分析測量代碼而不運行它。實際上,我們將這些工具用於評估代碼、讀取檔案、衡量它所寫的要...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.