亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 後端開發(fā) php教程 與Jenkins分析PHP項(xiàng)目

與Jenkins分析PHP項(xiàng)目

Feb 19, 2025 am 11:41 AM

Jenkins:PHP項(xiàng)目的持續(xù)集成與交付利器

Jenkins,這款開源自動(dòng)化服務(wù)器,在PHP項(xiàng)目的持續(xù)集成和持續(xù)交付中扮演著關(guān)鍵角色,它能夠?qū)崟r(shí)檢測和解決bug,並持續(xù)反饋代碼質(zhì)量改進(jìn)建議。

Jenkins與PHP工具集成的強(qiáng)大功能

Jenkins與眾多PHP項(xiàng)目工具兼容,包括PHP CodeSniffer、PHP MD、PHP CPD、PHP Depend、PHPLOC、PHPUnit和PHPDox等,每個(gè)工具都提供獨(dú)特的代碼分析見解和指標(biāo)。 Jenkins的優(yōu)勢在於它能夠生成圖表和概覽,比命令行檢索更有效地呈現(xiàn)問題,從而更輕鬆地識(shí)別和解決代碼中的問題。

除了已設(shè)置的工具外,Jenkins還會(huì)收集其他信息,例如PHP CodeSniffer、PHP MD和PHP CPD違規(guī)情況的概述,以及顯示每次構(gòu)建之間所有提交的“更改”概述。

Jenkins結(jié)果解讀:項(xiàng)目視圖和構(gòu)建視圖

Jenkins的結(jié)果來自不同的工具,並將放置在Jenkins GUI的不同位置。我們將瀏覽兩個(gè)不同的頁面。首先是項(xiàng)目視圖頁面,其頂部顯示項(xiàng)目名稱。在此頁面上,您可以獲得項(xiàng)目的總體概述,並可以輕鬆比較多個(gè)構(gòu)建。您可以通過從默認(rèn)概述頁面單擊項(xiàng)目來訪問此頁面。除了項(xiàng)目視圖頁面外,我們還有構(gòu)建視圖頁面。您可以通過單擊側(cè)邊欄中的構(gòu)建編號(hào)來導(dǎo)航到此頁面。在這裡,您可以查看有關(guān)此特定構(gòu)建的各種詳細(xì)信息。

本文將逐步介紹每個(gè)工具及其報(bào)告內(nèi)容。最後,我們還將查看Jenkins為我們收集的一些額外詳細(xì)信息。由於我們多次構(gòu)建相同的項(xiàng)目,因此我們的圖表中將顯示直線。在實(shí)際項(xiàng)目中,圖表會(huì)波動(dòng)。

PHP CodeSniffer

CodeSniffer是一個(gè)工具,用於檢查您的代碼是否符合通用規(guī)則集或您自己的自定義規(guī)則集。在本例中,我們配置了希望根據(jù)PSR2測試我們的工具。我們在build.xml文件中定義了這一點(diǎn)。

<arg value="--standard=PSR2" />

在概述頁面上,您將看到一個(gè)名為“Checkstyle Trend”的圖表。此圖表表示每次構(gòu)建中PSR2問題的數(shù)量。在我們的代碼中,我們幾乎完全符合PSR2標(biāo)準(zhǔn),因此我們的圖表只顯示一個(gè)問題。

Analyzing a PHP Project with Jenkins

頁面下方還有一個(gè)圖表,它結(jié)合了來自3個(gè)工具的數(shù)據(jù)。 CodeSniffer是其中之一。

要查看問題所在位置,您可以單擊最新構(gòu)建的左側(cè)菜單中的“checkstyle warnings”,或者單擊特定構(gòu)建,然後單擊該特定構(gòu)建的“checkstyle warnings”。

Analyzing a PHP Project with Jenkins

在此頁面上,您可以清楚地看到問題的描述。請注意,您可以使用多個(gè)過濾器。在頂部欄中,您可以清楚地看到有多少問題是新的,有多少問題已修復(fù)。您可以單擊數(shù)字以清楚地查看更改。在摘要中,您可以快速查看按優(yōu)先級(jí)分類的問題。

PHP MD

MD代表Mess Detector(混亂檢測器)。此工具嘗試指示代碼中的幾個(gè)問題。這可能是潛在的錯(cuò)誤、未使用的代碼或複雜的方法。有關(guān)可用檢查的完整列表,您可以查看此頁面。請注意,我們並非檢查每個(gè)規(guī)則。您可以在phpmd.xml文件中定義要檢查的規(guī)則。

與PHP CodeSniffer一樣,我們在項(xiàng)目視圖頁面上看到一個(gè)圖表,該圖表指示我們的混亂檢測如何隨著時(shí)間的推移而進(jìn)展。

Analyzing a PHP Project with Jenkins

要找出問題所在,您可以單擊左側(cè)菜單中的“pmd warnings”以轉(zhuǎn)到最新構(gòu)建。如果您希望查看不同的構(gòu)建,請單擊一個(gè)構(gòu)建,然後選擇“pmd warnings”。您將到達(dá)一個(gè)類似於PHP CodeSniffer頁面的頁面。

Analyzing a PHP Project with Jenkins

在頂部,您可以再次看到有多少問題是新的,有多少問題已修復(fù)。除此之外,您還可以看到每個(gè)問題的優(yōu)先級(jí)。

在詳細(xì)信息頁面中,您可以獲得有關(guān)在何處找到問題的更多信息。有許多選項(xiàng)卡可用於以不同的方式提供相同的信息。例如,您可以單擊“types”以了解有關(guān)每種類型的更多信息。

Analyzing a PHP Project with Jenkins

如您所見,“UnusedFormalParameter”是我們最大的問題。通過單擊它,我們將再次看到哪些文件有未使用的參數(shù)。

PHP CPD

CPD代表Copy Paste Detector(複製粘貼檢測器)。此工具將分析所有代碼並查找多個(gè)重複行。如果您有很多重複行,則可能意味著您應(yīng)該重寫某些部分,以便在多個(gè)類之間共享邏輯。在項(xiàng)目視圖頁面上,我們將再次看到所有構(gòu)建中的總體進(jìn)度。

Analyzing a PHP Project with Jenkins

在左側(cè)菜單中,我們可以單擊“duplicate code”以獲取所發(fā)現(xiàn)問題的概述。與之前一樣,單擊構(gòu)建以獲取有關(guān)該構(gòu)建的更多信息。您會(huì)注意到概述看起來與之前的頁麵類似。讓我們單擊“details”選項(xiàng)卡以獲取更多信息。

Analyzing a PHP Project with Jenkins

如您所見,CompanyFilter類中有58行也位於UserFilter和TimeCategoryFilter類中。根據(jù)此數(shù)據(jù),您可以決定需要某種處理所有3個(gè)類的大部分內(nèi)容的BaseFilter或?qū)崿F(xiàn)服務(wù)。解決方案取決於您的情況,PHP CPD 只告訴您它在哪裡發(fā)現(xiàn)了問題。

PHP Depend

PHP Depend可能是最難理解的指標(biāo)。 PHP Depend對您的代碼庫執(zhí)行靜態(tài)代碼分析。它生成2個(gè)圖像和一個(gè)概述頁面。您可能注意到,在項(xiàng)目視圖頁面的頂部,有一些HTML應(yīng)該顯示圖像。

圖像未顯示的事實(shí)意味著您必須切換Jenkins配置中的開關(guān)。轉(zhuǎn)到“manage jenkins”,然後轉(zhuǎn)到“Configure Global Security”。有一個(gè)選擇框,您可以使用它來配置“markup formatter”。將其設(shè)置為“Safe HTML”並保存您的設(shè)置。如果您現(xiàn)在返回到項(xiàng)目視圖頁面,您會(huì)注意到HTML已轉(zhuǎn)換為兩個(gè)圖像。

Analyzing a PHP Project with Jenkins

我建議您閱讀此工具的官方文檔以充分理解這兩個(gè)圖表。有關(guān)金字塔的更多信息,您可以查看此鏈接。有關(guān)抽像不穩(wěn)定性圖表的更多信息,您可以查看此鏈接。

您可以通過單擊特定構(gòu)建,然後在左側(cè)菜單中選擇“JDepend”來獲取更多詳細(xì)信息。您將獲得如下概述。

Analyzing a PHP Project with Jenkins

此頁面的解釋也相當(dāng)龐大而復(fù)雜,因此我將您引導(dǎo)至官方文檔,其中對所有內(nèi)容進(jìn)行了解釋。

PHPLOC

PHPLOC是一個(gè)快速測量項(xiàng)目大小的工具。它向您顯示代碼的總行數(shù)、靜態(tài)方法的總數(shù)等。在左側(cè)菜單中,您可以單擊“plots”以獲取此工具的結(jié)果。您可以使用11個(gè)圖表來查找此信息。下面,您將看到一個(gè)圖表的屏幕截圖,該圖表指示代碼和註釋的總行數(shù)以及方法、類、特性和函數(shù)的總數(shù)。

Analyzing a PHP Project with Jenkins

Analyzing a PHP Project with Jenkins

PHPUnit

Jenkins 中的大量統(tǒng)計(jì)數(shù)據(jù)是由 PHPUnit 生成的。僅在概述中,您將看到由 PHPUnit 數(shù)據(jù)生成的 3 個(gè)圖表。

Analyzing a PHP Project with Jenkins

第一個(gè)圖表指示有多少代碼被測試覆蓋。在本例中,為 71.1%。為了生成此覆蓋率,後臺(tái)使用了 xdebug。

第二個(gè)圖表指示您的 CRAP 水平。 CRAP 代表更改風(fēng)險(xiǎn)分析和預(yù)測。通過檢查代碼的複雜性以及對代碼執(zhí)行的測試量來計(jì)算 CRAP。如果您瀏覽了 PHP MD 規(guī)則,您可能已經(jīng)註意到 PHP MD 也能夠檢查代碼的複雜性,但沒有考慮單元測試。請閱讀此處以了解 PHP MD 如何計(jì)算您的複雜性。

最後的圖表顯示了有多少測試成功以及有多少測試失敗。在本例中,它們都成功了。

在我們的左側(cè)欄菜單中,我們有兩個(gè)由 PHPUnit 生成的項(xiàng)目。第一個(gè)是 Crap。在此頁面上,您可以看到幾個(gè)圖表的概述,這些圖表指示您當(dāng)前的 CRAP 水平有多高。在底部,您實(shí)際上會(huì)看到哪些方法被標(biāo)記為 CRAP。您會(huì)注意到一列指示覆蓋率和復(fù)雜性。

第二個(gè)菜單項(xiàng)是“clover HTML report”。在此頁面中,您可以按目錄概述有多少內(nèi)容被您的單元測試覆蓋。

Analyzing a PHP Project with Jenkins

您可以單擊目錄以深入了解您的源代碼。如果您到達(dá)一個(gè)文件,您可以打開該文件並逐行查看有多少內(nèi)容被覆蓋。使用顏色,它指示哪些部分正在測試,哪些部分沒有測試。將鼠標(biāo)懸停在一行上會(huì)指示您的單元測試已調(diào)用該行多少次。

Analyzing a PHP Project with Jenkins

在本例中,我們可以清楚地看到 if 語句中的部分沒有被單元測試調(diào)用。在本例中這是正確的。此方法只執(zhí)行 GET 請求,而不執(zhí)行 POST 請求。如果我們在單元測試中實(shí)現(xiàn) POST 請求,則此 if 語句將被標(biāo)記為綠色。這樣,您可以輕鬆發(fā)現(xiàn)單元測試中任何缺失的部分。

PHPDox

有很多工具可以根據(jù)您的代碼和註釋生成文檔。 PHPDox 只是另一個(gè)可以為您執(zhí)行此任務(wù)的工具。在左側(cè)菜單中,您可以單擊“API Documentation”以轉(zhuǎn)到您的文檔。 PHPDox 的好處是它還包括所有其他工具的結(jié)果。

Analyzing a PHP Project with Jenkins

通過頂部的導(dǎo)航,您可以獲得所有類的概述,但您也可以深入研究一個(gè)類並獲得所有方法和描述的概述。您還可以查看文件的歷史記錄和源代碼。

Analyzing a PHP Project with Jenkins

其他頁面

除了我們在之前的文章中設(shè)置的工具外,Jenkins還會(huì)為您收集其他信息。我們安裝的違規(guī)插件會(huì)創(chuàng)建一個(gè)額外的頁面,該頁面顯示PHP CodeSniffer、PHP MD和PHP CPD的概述。

您還可以單擊特定構(gòu)建,並在左側(cè)菜單中找到名為“changes”的菜單項(xiàng)。如果您轉(zhuǎn)到此頁面,您將看到在先前構(gòu)建和此構(gòu)建之間進(jìn)行的所有提交的概述。如果未進(jìn)行任何更改,則頁面將為空白。

Analyzing a PHP Project with Jenkins

結(jié)論

在本文中,我們仔細(xì)研究了從所有工具獲得的指標(biāo)類型。您檢索到的所有信息也可以在命令行上檢索。 Jenkins 的優(yōu)勢在於您可以創(chuàng)建圖表和概述,這些圖表和概述可以更好地表示問題。

在最後一部分中,我們將更換一些工具並添加一些額外的指標(biāo)。我們還將研究如何分析我們的 CSS、JavaScript 和 HTML 代碼。

(此處省略FAQ部分,因?yàn)镕AQ部分內(nèi)容與文章主體內(nèi)容重複性較高,且篇幅較長,為了避免重複,此處予以省略。)

以上是與Jenkins分析PHP項(xiàng)目的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

PHP正則密碼強(qiáng)度 PHP正則密碼強(qiáng)度 Jul 03, 2025 am 10:33 AM

判斷密碼強(qiáng)度需結(jié)合正則與邏輯處理,基礎(chǔ)要求包括:1.長度不少於8位;2.至少含小寫字母、大寫字母、數(shù)字;3.可加入特殊字符限制;進(jìn)階方面需避免連續(xù)重複字符及遞增/遞減序列,這需PHP函數(shù)檢測;同時(shí)應(yīng)引入黑名單過濾常見弱密碼如password、123456;最終建議結(jié)合zxcvbn庫提升評(píng)估精度。

PHP變量範(fàn)圍解釋了 PHP變量範(fàn)圍解釋了 Jul 17, 2025 am 04:16 AM

PHP變量作用域常見問題及解決方法包括:1.函數(shù)內(nèi)部無法訪問全局變量,需使用global關(guān)鍵字或參數(shù)傳入;2.靜態(tài)變量用static聲明,只初始化一次並在多次調(diào)用間保持值;3.超全局變量如$_GET、$_POST可在任何作用域直接使用,但需注意安全過濾;4.匿名函數(shù)需通過use關(guān)鍵字引入父作用域變量,修改外部變量則需傳遞引用。掌握這些規(guī)則有助於避免錯(cuò)誤並提升代碼穩(wěn)定性。

如何在PHP中牢固地處理文件上傳? 如何在PHP中牢固地處理文件上傳? Jul 08, 2025 am 02:37 AM

要安全處理PHP文件上傳需驗(yàn)證來源與類型、控製文件名與路徑、設(shè)置服務(wù)器限制並二次處理媒體文件。 1.驗(yàn)證上傳來源通過token防止CSRF並通過finfo_file檢測真實(shí)MIME類型使用白名單控制;2.重命名文件為隨機(jī)字符串並根據(jù)檢測類型決定擴(kuò)展名存儲(chǔ)至非Web目錄;3.PHP配置限制上傳大小及臨時(shí)目錄Nginx/Apache禁止訪問上傳目錄;4.GD庫重新保存圖片清除潛在惡意數(shù)據(jù)。

在PHP中評(píng)論代碼 在PHP中評(píng)論代碼 Jul 18, 2025 am 04:57 AM

PHP註釋代碼常用方法有三種:1.單行註釋用//或#屏蔽一行代碼,推薦使用//;2.多行註釋用/.../包裹代碼塊,不可嵌套但可跨行;3.組合技巧註釋如用/if(){}/控制邏輯塊,或配合編輯器快捷鍵提升效率,使用時(shí)需注意閉合符號(hào)和避免嵌套。

發(fā)電機(jī)如何在PHP中工作? 發(fā)電機(jī)如何在PHP中工作? Jul 11, 2025 am 03:12 AM

AgeneratorinPHPisamemory-efficientwaytoiterateoverlargedatasetsbyyieldingvaluesoneatatimeinsteadofreturningthemallatonce.1.Generatorsusetheyieldkeywordtoproducevaluesondemand,reducingmemoryusage.2.Theyareusefulforhandlingbigloops,readinglargefiles,or

撰寫PHP評(píng)論的提示 撰寫PHP評(píng)論的提示 Jul 18, 2025 am 04:51 AM

寫好PHP註釋的關(guān)鍵在於明確目的與規(guī)範(fàn),註釋應(yīng)解釋“為什麼”而非“做了什麼”,避免冗餘或過於簡單。 1.使用統(tǒng)一格式,如docblock(/*/)用於類、方法說明,提升可讀性與工具兼容性;2.強(qiáng)調(diào)邏輯背後的原因,如說明為何需手動(dòng)輸出JS跳轉(zhuǎn);3.在復(fù)雜代碼前添加總覽性說明,分步驟描述流程,幫助理解整體思路;4.合理使用TODO和FIXME標(biāo)記待辦事項(xiàng)與問題,便於後續(xù)追蹤與協(xié)作。好的註釋能降低溝通成本,提升代碼維護(hù)效率。

快速PHP安裝教程 快速PHP安裝教程 Jul 18, 2025 am 04:52 AM

ToinstallPHPquickly,useXAMPPonWindowsorHomebrewonmacOS.1.OnWindows,downloadandinstallXAMPP,selectcomponents,startApache,andplacefilesinhtdocs.2.Alternatively,manuallyinstallPHPfromphp.netandsetupaserverlikeApache.3.OnmacOS,installHomebrew,thenrun'bre

學(xué)習(xí)PHP:初學(xué)者指南 學(xué)習(xí)PHP:初學(xué)者指南 Jul 18, 2025 am 04:54 AM

易於效率,啟動(dòng)啟動(dòng)tingupalocalserverenverenvirestoolslikexamppandacodeeditorlikevscode.1)installxamppforapache,mysql,andphp.2)uscodeeditorforsyntaxssupport.3)

See all articles