国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

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

開發 后端
在本文中,將介紹在目前軟件工程中經常用到的持續集成概念,并且會介紹在PHP開發中,如何能用好PHP目前開源的一些持續集成管理工具,去管理好項目。

上一篇文章中,我們為大家介紹了一些PHP持續集成工具,在本文中,我們將介紹繼續介紹PHP中的持續集成工具。

持續集成的概念

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

PHP MESS DECTOR

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

  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/ 

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

PHP開發必備 PHP持續集成工具介紹(下)
▲點擊查看大圖

PHP COPY PASTE DETECTOR

Php copy paste detector(https://github.com/sebastianbergmann/phpcpd)是重構的一個好工具,它用來發現你的項目中的重復代碼。安裝方法如下:

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

注意,必須先安裝phpunit。運行方法如下圖:

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

PHP DEAD CODE Detector

php dead code detector(https://github.com/sebastianbergmann/phpdcd)是一個檢查你的項目中有哪些代碼是從來沒被調用過的,比如類,方法編寫后再沒被調用過,這是一個去掉“壞味道”代碼的最佳實踐,可以增強系統的可維護性。安裝如下:

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

 運行方法下圖:

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

綜合持續集成工具 Jenkins

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

Jenkins可以使用windows下的計劃任務,LINUX下的SHELL以及ANT或者MAVN去進行構建項目,本文以使用ANT為例進行說明,首先必須安裝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的讀者應該知道,這里其實是調用了以上說的各個PHP持續集成工具而已。

接下來,是安裝Jenkins,到Jenkins的官網去下載相符合的操作系統版本,然后就可以按照指引安裝,本文以在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開發必備 PHP持續集成工具介紹(下)

Jenkins的設置

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

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

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

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

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

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

總結

持續集成應該成為你日常項目管理運行維護的重要步驟,通過每天構建項目,能達到敏捷軟件工程學中的最佳實踐,提高系統的可靠性,減少系統潛在的bug,由于篇幅所限,更多的持續集成工具用法在以后的文章中將會詳細論述,讀者可參考各工具的參考手冊進行學習。

【編輯推薦】

  1. PHP程序員突破成長瓶頸
  2. 五個常見 PHP數據庫問題
  3. 是什么造成PHP遠程文件包含漏洞產生
  4. 為什么說PHP是個集中營
責任編輯:于鐵 來源: IT168
相關推薦

2011-05-12 13:57:59

PHP持續集成

2017-02-27 18:24:34

交付開發工具

2019-04-18 10:35:30

持續集成工具Buddy

2012-02-23 10:22:03

JavaTeamCity

2009-11-03 10:04:06

VS.PHPVisual StudPHP

2023-09-04 13:26:27

PHP開發工具

2011-05-19 11:03:02

PHPDwoo

2020-12-15 11:34:35

持續集成工具

2023-03-19 11:47:57

Taro小程序持續集

2012-07-04 15:05:14

ibmdw

2011-11-30 09:11:03

PHP

2015-08-06 09:22:19

開源持續集成服務器工具

2017-02-27 18:35:23

集成交付部署

2016-08-05 17:19:37

持續集成持續交付系統運維

2015-12-02 14:56:07

Docker開發模式持續集成

2017-10-19 09:47:55

容器化微服務集成

2021-03-31 09:00:00

管道集成工具

2018-01-12 08:29:11

持續集成工具

2011-06-15 16:58:26

PHP

2009-06-14 18:05:58

ibmdwWebSphere
點贊
收藏

51CTO技術棧公眾號

亚洲免费在线观看视频| 94色蜜桃网一区二区三区| 麻豆久久久久久久| 日韩欧美成人网| 7777精品视频| 在线亚洲免费视频| 日韩免费av片在线观看| 国产精品久久久毛片| av在线亚洲一区| av中文字幕在线观看第一页| 夜久久久久久| 欧美顶级少妇做爰| 久久国产精品99久久久久久丝袜 | 国产女同互慰高潮91漫画| 色噜噜久久综合伊人一本| 日本五级黄色片| 欧美人与性动交xxⅹxx| 成人av在线资源| 亚洲乱码精品一二三四区日韩在线 | 国产女主播av| 国产欧美日韩一区二区三区| 国产99视频精品免费视频36| 国产在线视频资源| 久久99热国产| 亚洲天堂av在线免费| 岛国一区二区三区高清视频| 亚洲aaa级| 亚洲一二三区视频在线观看| 国产精品二区二区三区| 欧美日韩视频精品二区| 女同一区二区三区| 日本美女视频一区二区| 欧美日韩国产黄| 91久久国产精品91久久性色| 鲁丝一区二区三区免费| 51漫画成人app入口| 日韩在线中文视频| 六九午夜精品视频| 一本久久综合亚洲鲁鲁五月天| 久久久久久国产精品久久| 国产在线98福利播放视频| 久久精品国产99国产| 色综合五月天导航| 99re6在线视频| 精品国产亚洲一区二区三区在线 | 亚洲精品国产免费| 400部精品国偷自产在线观看| 激情亚洲影院在线观看| 久久久久久久性| 国产精品久久久久久五月尺| 免费在线观看av网站| 国产一区视频在线看| 日韩中文字幕在线播放| 五月天亚洲激情| 国产精品videossex久久发布| 精品国产一区二区国模嫣然| 男女激情无遮挡| 国产va免费精品观看精品视频| 色综合久久久久久久| 日漫免费在线观看网站| 国产风韵犹存在线视精品| 欧美黄色性视频| 噜噜噜天天躁狠狠躁夜夜精品 | 456亚洲精品成人影院| 中文字幕亚洲字幕| 九色porny在线观看| 麻豆精品国产传媒mv男同| 亚洲在线观看一区| 国产精品密蕾丝视频下载 | www在线观看播放免费视频日本| 国产精品一级片| 国产精品视频yy9099| 国产精品久久久久无码av| 亚洲天堂av综合网| 国产精品3区| 777精品伊人久久久久大香线蕉| 午夜欧美福利视频| 视频一区视频二区中文字幕| 1769国内精品视频在线播放| 日韩亚洲一区在线| 色偷偷88888欧美精品久久久| 日韩高清一区| 精品va天堂亚洲国产| av成人在线观看| 91精品国产入口| 黄网免费视频| 国产美女在线精品| 亚洲一区二区三区四区五区xx| 亚洲四区在线观看| 日本xxxxxxxxxx75| 91久久视频| 午夜精品久久久久久久久久久久| av免费网站在线| 精品久久久久久中文字幕一区奶水| 国产一二在线观看| 秋霞影院一区二区| aa免费在线观看| 国产一区二区电影| 国产网站av| 91丨九色porny丨蝌蚪| 亚欧洲精品在线视频免费观看| 精品中文字幕一区二区三区av| 国产午夜精品美女视频明星a级| 一区二区三区视频网站| 色先锋aa成人| 日本在线一区二区| 亚洲激情在线视频| 婷婷精品视频| 欧美激情中文字幕在线| 欧美日韩网站| 国产精品免费区二区三区观看| 国产福利一区在线| 日韩av视屏| 久久久久这里只有精品| 日韩三级网址| 欧美日韩一区在线播放| 国产一区欧美| 天天爱天天操天天干| 欧美zozo另类异族| 羞羞污视频在线观看| 欧美亚洲综合色| 日本又骚又刺激的视频在线观看| 精品亚洲va在线va天堂资源站| 日本高清成人vr专区| 欧美一级在线视频| 青青草原在线亚洲| 香港三级日本三级a视频| 色呦呦一区二区三区| 成人精品毛片| 日韩美女视频免费在线观看| 国产精品456露脸| 欧美激情二区| 国产热re99久久6国产精品| www日韩大片| 欧美日韩美女| 亚洲免费视频一区| 国产一区二区三区黄视频| 欧美精品a∨在线观看不卡 | 亚洲老板91色精品久久| av中文字幕在线观看第一页| 国产精品私拍pans大尺度在线| 第一会所亚洲原创| 97伦理在线四区| 亚洲三级视频| 李宗瑞系列合集久久| 国外色69视频在线观看| 99精品视频在线播放观看| sm性调教片在线观看| 亚洲性视频网址| 久久性色av| 欧美69xxx| 国产一区二区三区高清视频| 狠狠久久亚洲欧美专区| 操你啦视频在线| 国产精品久久久对白| 色激情天天射综合网| www成人免费观看| 精品亚洲欧美日韩| 国产传媒日韩欧美成人| a毛片不卡免费看片| 日韩经典在线视频| 国产视频一区在线观看| 精东影业在线观看| 国产精品成av人在线视午夜片| 亚洲高清电影| 在线观看17c| 国产亚洲人成a一在线v站| 国产伦精一区二区三区| 国产成人久久精品麻豆二区| 日韩精品视频久久| 欧美小视频在线观看| 亚洲天堂免费| www.avtt| 久久成人av网站| 亚洲欧美综合| 秋霞无码一区二区| 午夜不卡av在线| 日本不卡网站| 日本欧美一二三区| 亚洲欧美另类图片小说| 国产精品亚洲人成在99www| 污黄网站在线观看| 色七七影院综合| 国产精品美日韩| 俺来俺也去www色在线观看| 91福利视频网| 欧美日韩免费观看中文| 99精品热视频只有精品10| 五月婷婷视频在线观看| 欧美黄网在线观看| 久久久亚洲影院| 欧美天堂在线观看| 美女视频网站黄色亚洲| 天堂中文资源在线| 久久精彩视频| 在线精品国产成人综合| 国产亚洲福利| 一级视频在线免费观看| 亚洲色图校园春色| 国产精品国产a|