偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

PHP開發(fā)必備 PHP持續(xù)集成工具介紹(下)

開發(fā) 后端
在本文中,將介紹在目前軟件工程中經(jīng)常用到的持續(xù)集成概念,并且會(huì)介紹在PHP開發(fā)中,如何能用好PHP目前開源的一些持續(xù)集成管理工具,去管理好項(xiàng)目。

上一篇文章中,我們?yōu)榇蠹医榻B了一些PHP持續(xù)集成工具,在本文中,我們將介紹繼續(xù)介紹PHP中的持續(xù)集成工具。

持續(xù)集成的概念

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

PHP MESS DECTOR

PHP MESS DECTOR(簡(jiǎn)稱PMD,項(xiàng)目地址http://phpmd.org/),是基于pdepend的結(jié)果進(jìn)行分析,分析出一旦你的PHP項(xiàng)目超過了pdepend中各具體指標(biāo)值的規(guī)定,從而發(fā)出警告提示信息,安裝方法如下:

  1. sudo pear channel-discover pear.phpmd.org  
  2. sudo pear channel-discover pear.pdepend.org  
  3. sudo pear install --alldeps phpmd/PHP_PMD 

 使用方法為:

  1. phpmd . html codesize,unusedcode,naming,design --reportfile ../messdetector.html --exclude Tests/ 

上面這個(gè)命令含義為,使用pdepend中的4個(gè)規(guī)則codesize,unusedcode,naming,desgin去檢查項(xiàng)目的代碼,但除了Tests目錄不作檢查,檢查結(jié)果生成HTML的格式,保存在/messdetector.html中,結(jié)果如下:

PHP開發(fā)必備 PHP持續(xù)集成工具介紹(下)
▲點(diǎn)擊查看大圖

PHP COPY PASTE DETECTOR

Php copy paste detector(https://github.com/sebastianbergmann/phpcpd)是重構(gòu)的一個(gè)好工具,它用來發(fā)現(xiàn)你的項(xiàng)目中的重復(fù)代碼。安裝方法如下:

  1. sudo pear channel-discover pear.phpunit.de  
  2. sudo pear channel-discover components.ez.no  
  3. sudo pear install phpunit/phpcpd 

注意,必須先安裝phpunit。運(yùn)行方法如下圖:

PHP開發(fā)必備 PHP持續(xù)集成工具介紹(下)

PHP DEAD CODE Detector

php dead code detector(https://github.com/sebastianbergmann/phpdcd)是一個(gè)檢查你的項(xiàng)目中有哪些代碼是從來沒被調(diào)用過的,比如類,方法編寫后再?zèng)]被調(diào)用過,這是一個(gè)去掉“壞味道”代碼的最佳實(shí)踐,可以增強(qiáng)系統(tǒng)的可維護(hù)性。安裝如下:

  1. sudo pear channel-discover pear.phpunit.de  
  2. sudo pear channel-discover components.ez.no  
  3. sudo pear install phpunit/phpdcd-beta 

 運(yùn)行方法下圖:

PHP開發(fā)必備 PHP持續(xù)集成工具介紹(下)

綜合持續(xù)集成工具 Jenkins

有了上面的各類工具,用戶可以在PHP中進(jìn)行持續(xù)集成構(gòu)建的工作,但還可以使用一款綜合的持續(xù)集成工具Jenkins(http://jenkins-ci.org/)進(jìn)行(注:Jenkins其實(shí)就是原先的構(gòu)建工具Hudson,只不過現(xiàn)在改了名稱)。這款持續(xù)集成工具是個(gè)持續(xù)構(gòu)建服務(wù)器,包含了上述提到的各種PHP持續(xù)構(gòu)建工具的功能,安裝好后,能做到每天持續(xù)構(gòu)建,并將構(gòu)建的結(jié)果通知用戶。下面對(duì)其進(jìn)行簡(jiǎn)單介紹。

Jenkins可以使用windows下的計(jì)劃任務(wù),LINUX下的SHELL以及ANT或者M(jìn)AVN去進(jìn)行構(gòu)建項(xiàng)目,本文以使用ANT為例進(jìn)行說明,首先必須安裝JAVA中的ANT。編寫ANT文件如下:

  1. <project name="Test" default="build" basedir=".">  
  2.     <property name="output" location="${basedir}/buildOutput/"/>  
  3.     <target name="init">  
  4.         <mkdir dir="${output}"/>  
  5.         <mkdir dir="${output}/phpcs/"/>  
  6.         <mkdir dir="${output}/pdepend/"/>  
  7.     </target>  
  8.  
  9.     <target name="build" depends="init, test, phpcs, phpmd, phpcpd, pdepend">  
  10.     </target>  
  11.  
  12.     <target name="test">  
  13.         <exec executable="phpunit" failonerror="true">  
  14.             <arg line="--coverage-clover ${output}/CodeCoverage/clover.xml  
  15.                 --coverage-html ${output}/CodeCoverage/  
  16.                 ."/>  
  17.         </exec>  
  18.     </target>  
  19.  
  20.     <target name="phpcs">  
  21.         <exec executable="phpcs">  
  22.             <arg line="--report=checkstyle  
  23.                           --report-file=${output}/phpcs/checkstyle.xml  
  24.                           --standard=Zend  
  25.                           ${basedir}" />  
  26.         </exec>  
  27.     </target>  
  28.  
  29.     <target name="phpmd">  
  30.         <exec executable="phpmd">  
  31.             <arg line="  
  32.                  . xml codesize,unusedcode,naming,design --reportfile ${output}/messdetector.xml --exclude Tests/  
  33.             " />  
  34.         </exec>  
  35.     </target>  
  36.  
  37.     <target name="phpcpd">  
  38.         <exec executable="phpcpd">  
  39.             <arg line="  
  40.                  --log-pmd ${output}/phpcpd.xml .  
  41.             " />  
  42.         </exec>  
  43.     </target>  
  44.  
  45.     <target name="pdepend">  
  46.         <exec executable="pdepend">  
  47.             <arg line="  
  48.                 --jdepend-xml=${output}/pdepend/jdepend.xml  
  49.                 --jdepend-chart=${output}/pdepend/dependencies.svg  
  50.                 --overview-pyramid=${output}/pdepend/overview-pyramid.svg  
  51.                 --ignore=Tests/  
  52.                 .  
  53.             " />  
  54.         </exec>  
  55.     </target>  
  56. </project> 

 熟悉ANT的讀者應(yīng)該知道,這里其實(shí)是調(diào)用了以上說的各個(gè)PHP持續(xù)集成工具而已。

接下來,是安裝Jenkins,到Jenkins的官網(wǎng)去下載相符合的操作系統(tǒng)版本,然后就可以按照指引安裝,本文以在Ubantu上的安裝方法為例說明:

  1. wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add –  
  2. 在/etc/apt/sources.list文件最后增加如下這行:  
  3. deb http://pkg.jenkins-ci.org/debian binary/  
  4. sudo apt-get update  
  5. sudo apt-get install jenkins 

 之后就可以安裝成功了,可以通過http://localhost:8080/ 去訪問Jenkins了,初始界面如下圖:

PHP開發(fā)必備 PHP持續(xù)集成工具介紹(下)

Jenkins的設(shè)置

Jenkins的設(shè)置比較復(fù)雜,在這里不一一詳細(xì)論述。但這里稍微提下設(shè)置的基本方法。只需要點(diǎn)上圖中的“Manage Jenkins”鏈接,再點(diǎn)“Configure System”則可進(jìn)入設(shè)置面板,其中你可以設(shè)置相關(guān)的權(quán)限設(shè)置,也可以設(shè)置SMTP用來通知每次的構(gòu)建成功與否的信息。此外,需要設(shè)置Jenkins中的插件設(shè)置,要打開相關(guān)的插件設(shè)置開關(guān),比如使用Git做版本控制工具的,則要設(shè)置Git插件為允許狀態(tài)。設(shè)置的步驟很簡(jiǎn)單,選擇“plugin”,點(diǎn)“Install”即可安裝,安裝后要重新啟動(dòng)Jenkins。

我們需要安裝一系列的插件去實(shí)現(xiàn)php的持續(xù)集成,比如安裝Clover(https://wiki.jenkins-ci.org/display/JENKINS/Clover+Plugin)去圖形化顯示phpunit的單元測(cè)試覆蓋率,安裝Checkstyle(https://wiki.jenkins-ci.org/display/JENKINS/Checkstyle+Plugin)去顯示PHP CodeSniffer的運(yùn)行結(jié)果,也要安裝PMD,而Jdepend(https://wiki.jenkins-ci.org/display/JENKINS/JDepend+Plugin)用來顯示PHP Depend的結(jié)果。

在完成基本設(shè)置后,我們可以首先新建立一個(gè)Job,點(diǎn)“New Job”鏈接,給Job命名,之后,我們可以按照http://jenkins-php.org/一文中的教程進(jìn)行設(shè)置,之后就可以運(yùn)行構(gòu)建了,下面是兩個(gè)典型的構(gòu)建運(yùn)行圖:

PHP開發(fā)必備 PHP持續(xù)集成工具介紹(下)

PHP開發(fā)必備 PHP持續(xù)集成工具介紹(下)

可以看到,Jenkins的每次構(gòu)建,都能綜合運(yùn)用了本文所談到的各樣php集成工具,十分方便,而且能提供十分豐富的圖形報(bào)表。

總結(jié)

持續(xù)集成應(yīng)該成為你日常項(xiàng)目管理運(yùn)行維護(hù)的重要步驟,通過每天構(gòu)建項(xiàng)目,能達(dá)到敏捷軟件工程學(xué)中的最佳實(shí)踐,提高系統(tǒng)的可靠性,減少系統(tǒng)潛在的bug,由于篇幅所限,更多的持續(xù)集成工具用法在以后的文章中將會(huì)詳細(xì)論述,讀者可參考各工具的參考手冊(cè)進(jìn)行學(xué)習(xí)。

【編輯推薦】

  1. PHP程序員突破成長(zhǎng)瓶頸
  2. 五個(gè)常見 PHP數(shù)據(jù)庫(kù)問題
  3. 是什么造成PHP遠(yuǎn)程文件包含漏洞產(chǎn)生
  4. 為什么說PHP是個(gè)集中營(yíng)
責(zé)任編輯:于鐵 來源: IT168
相關(guān)推薦

2011-05-12 13:57:59

PHP持續(xù)集成

2017-02-27 18:24:34

交付開發(fā)工具

2019-04-18 10:35:30

持續(xù)集成工具Buddy

2012-02-23 10:22:03

JavaTeamCity

2023-09-04 13:26:27

PHP開發(fā)工具

2009-11-03 10:04:06

VS.PHPVisual StudPHP

2011-05-19 11:03:02

PHPDwoo

2020-12-15 11:34:35

持續(xù)集成工具

2023-03-19 11:47:57

Taro小程序持續(xù)集

2012-07-04 15:05:14

ibmdw

2015-08-06 09:22:19

開源持續(xù)集成服務(wù)器工具

2017-02-27 18:35:23

集成交付部署

2011-11-30 09:11:03

PHP

2016-08-05 17:19:37

持續(xù)集成持續(xù)交付系統(tǒng)運(yùn)維

2017-10-19 09:47:55

容器化微服務(wù)集成

2015-12-02 14:56:07

Docker開發(fā)模式持續(xù)集成

2021-03-31 09:00:00

管道集成工具

2011-06-15 16:58:26

PHP

2018-01-12 08:29:11

持續(xù)集成工具

2009-06-14 18:05:58

ibmdwWebSphere
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)