中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP持續集成工具有哪些

發布時間:2021-10-18 17:15:55 來源:億速云 閱讀:121 作者:柒染 欄目:編程語言

本篇文章給大家分享的是有關PHP持續集成工具有哪些,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

持續集成的概念

持續集成的概念是在現代軟件工程中提出的,最早見于敏捷開發方法論中,大師Martin Fowler對持續集成是這樣定義的:持續集成是一種軟件開發實踐,即團隊開發成員經常集成它們的工作,通常每個成員每天至少集成一次,也就意味著每天可能會發生多次集成。每次集成都通過自動化的構建(包括編譯,發布,自動化測試)來驗證,從而盡快地發現集成錯誤。許多團隊發現這個過程可以大大減少集成的問題,讓團隊能夠更快的開發內聚的軟件。

下面介紹PHP中的持續集成工具:

PHPUNIT

首先,PHPUNIT是PHP中的單元測試利器,項目地址在:http://www.phpunit.it。它

能自動運行你編寫的單元測試代碼,并給出是否通過的結果。安裝步驟如下,可以使用PHP中的PEAR安裝:

sudo apt-get install php5-curl php-pear php5-dev  sudo pear upgrade pear  sudo pear channel-discover pear.phpunit.de  sudo pear channel-discover components.ez.no  sudo pear channel-discover pear.symfony-project.com  sudo pear install phpunit/PHPUnit

之后,就可以在命令行下,以如下格式執行phpunit:

Phpunit 單元測試的php文件名.php

此外,還可以執行如下命令,生成單元測試的覆蓋報告:

phpunit --coverage-html ../CodeCoverage

這將在指定的目錄中生成單元測試的覆蓋報告,比如這個例子中,將在目錄CodeCoverage中生成單元測試覆蓋報告,如下圖:

PHP持續集成工具有哪些
▲點擊看大圖

如果點上圖的每一個PHP文件,還可以具體看到每個文件的單元測試覆蓋情況,如下圖:

PHP持續集成工具有哪些
▲點擊看大圖

從上圖中,可以看到每個PHP文件中,調用的方法的單元測試覆蓋情況,還可以看到具體哪些代碼行是已經單元測試覆蓋過,哪些沒有覆蓋過(綠色表示已經覆蓋,橙色表示還沒覆蓋),如下圖:

PHP持續集成工具有哪些
▲點擊看大圖

PHP CodeSniffer

PHP CodeSniffer是一個PHP的代碼風格檢測器,它根據預先設定好的PHP編碼風格和規則,去檢查應用中的代碼風格情況,內置了ZEND,PEAR的編碼風格規則,當然開發者也可以進行自定義。項目的地址在:http://pear.php.net/package/PHP_CodeSniffer/redirected,安裝方法如下:

sudo pear install PHP_CodeSniffer  phpcs --standard=Zend c:\phpcode

其中phpcs –standard后指定了使用Zend的建議代碼風格標準進行檢查,***一個參數是要檢查的PHP文件所在的目錄。運行后,檢查的一個效果圖如下圖所示:

PHP持續集成工具有哪些
▲點擊查看大圖

PHP Depend

PHP Depend(http://pdepend.org/)是一個PHP中靜態代碼分析的工具。它可以用來檢查你的PHP項目中的代碼規模和復雜程度。安裝方法如下:

sudo pear channel-discover pear.pdepend.org  sudo pear install pdepend/PHP_Depend-beta

使用的一個例子如下:

pdepend --jdepend-xml=../jdepend.xml --jdepend-chart=../dependencies.svg --overview-pyramid=../overview-pyramid.svg

上面會生成一個XML文件,兩個SVG的圖形文件。其中XML文件說明了項目中各PHP文件的互相依賴調用(引用)情況及每個方法、函數,類的代碼行,一個例子如下:

<?xml version=”1.0” encoding=”UTF-8”?>  <metrics noc=”3” nof=”0” noi=”0” nom=”6”>  <package name=”+global” noc=”17” nof=”0” noi=”0” nom=”237”>  <class name=”data_container”nom=”55”>  <file name=”/home/case-study/libs/data/container.php”/>  </class>  <class name=”data_download” nom=”10”>  <file name=”/home/case-study/libs/data/download.php”/>  </class>

其中的noc含義是類的代碼的行書,nof為函數的代碼行數,noi為接口代碼行數,nom為方法method代碼行數。

接下來我們來看下產生的一張SVG圖,該圖如下所示:

PHP持續集成工具有哪些

這張圖的反映了項目中包的依賴性度量情況。其基本理論來源于Robert C. Martin的論文(http://www.objectmentor.com/resources/articles/oodmetrc.pdf)中所介紹的關于軟件中模塊依賴性和穩定性的度量。其中,提到了如下概念:

Afferent Couplings (Ca)

依賴于被分析package的其他package的數量,用于衡量pacakge的職責。

簡單來說,即有多少其他的包或模塊調用了被分析的包或模塊。

Efferent Couplings (Ce)

被分析package的類所依賴的其他package的數量,用于衡量package的獨立性。

即它調用了多少其他包。

Abstractness (A)

被分析package中的抽象類和接口與所在package所有類數量的比例,取值范圍為0-1。如果該值為0,證明包中沒任何抽象類,有的只是具體實現邏輯方法的類,如果該值為1,則包中只有抽象類或接口了

Instability (I)

I=Ce/(Ce+Ca),用于衡量package的不穩定性,取值范圍為0到1。I=0表示最穩定,I=1表示最不穩定。

Distance (D)

用于衡量package在穩定性和抽象性之間的平衡。可以看到,最理想的情況是A+I越趨近1的,這樣能獲得抽象性和穩定性的***平衡。

此外,介紹php depend中生成的另外一張圖的含義,圖片如下:

PHP持續集成工具有哪些

在這張圖中,最上面的ANDC表示繼承其他類的平均數目,即項目中有多少類是繼承其他的類;AHH是繼承其他類的層次數。CALLS是方法被調用的總的次數,FANOUT是類所引用的類型數目。而CYCLO是圈復雜度(關于圈復雜度的解析,請參考(http://en.wikipedia.org/wiki/Cyclomatic_complexity)。LOC是代碼行數,NOM是項目中的方法的數目,NOC為項目中類的數目,NOP為項目中包的數目。

根據上圖中標明的除法規則,可以計算出相關的數據。更多的請參考php depend手冊(http://pdepend.org/documentation/handbook/reports/overview-pyramid.html)的詳細解析。

以上就是PHP持續集成工具有哪些,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

华蓥市| 张掖市| 内江市| 义乌市| 获嘉县| 武川县| 淳化县| 林州市| 吕梁市| 北流市| 瓦房店市| 融水| 巴东县| 平遥县| 镇江市| 青铜峡市| 临澧县| 禄丰县| 密山市| 蒙阴县| 长武县| 泸西县| 秦安县| 镶黄旗| 新民市| 依兰县| 扬中市| 承德县| 大厂| 喀什市| 垫江县| 柳江县| 乐陵市| 乾安县| 博客| 当雄县| 凤山县| 四子王旗| 景谷| 奉化市| 高台县|