検索

Jenkins:PHPプロジェクトの継続的な統合および配信ツールJenkinsは、PHPプロジェクトの継続的な統合と継続的な配信において重要な役割を果たしているオープンソース自動化サーバーであり、リアルタイムでバグを検出および解決し、コードの品質改善の提案を継続的にフィードバックすることができます。

PHPツールとのJenkinsの統合 Jenkinsは、PHP CodesNiffer、PHP MD、PHP CPD、PHP依存、PHPLOC、PHPUNIT、およびPHPDOXなど、幅広いPHPプロジェクトツールと互換性があり、各ツールは独自のコード分析の洞察とメトリックを提供します。ジェンキンスの利点は、チャートと概要を生成し、コマンドラインの検索よりも効率的に問題を提示し、コードの問題を識別して解決しやすくすることです。

既に設定されたツールに加えて、Jenkinsは、PHP CodesNiffer、PHP MD、PHP CPD違反の概要などの追加情報を収集し、各ビルド間のすべてのコミットを示す「変更」の概要を収集します。

ジェンキンスの解釈結果:プロジェクトビューとビルドビュー

ジェンキンスの結果はさまざまなツールから来ており、ジェンキンスGUIのさまざまな場所に配置されます。 2つの異なるページを閲覧します。最初はプロジェクトビューページで、プロジェクト名が上部に表示されます。このページでは、プロジェクトの概要を取得でき、複数のビルドを簡単に比較できます。このページにアクセスして、デフォルトの概要ページからアイテムをクリックしてください。プロジェクトビューページに加えて、ビルドビューページもあります。サイドバーのビルド番号をクリックして、このページに移動できます。ここでは、この特定のビルドに関するさまざまな詳細を表示できます。

この記事では、各ツールとそのレポートコンテンツを段階的に紹介します。最後に、ジェンキンスが私たちのために集めた追加の詳細のいくつかも見ていきます。同じプロジェクトを複数回構築するため、チャートに直線が表示されます。実際のプロジェクトでは、チャートが変動します。

php codesniffer

CodesNifferは、コードが共通のルールセットまたは独自のカスタムルールセットに準拠しているかどうかを確認するためのツールです。この例では、PSR2に対してテストするツールを構成しました。これをbuild.xmlファイルで定義しました。

概要ページには、「CheckStyle Trend」と呼ばれるチャートが表示されます。このチャートは、各ビルドのPSR2問題の数を表しています。コードでは、ほぼ完全にPSR2に準拠しているため、チャートには1つの問題のみが表示されます。

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

Analyzing a PHP Project with Jenkins 3つのツールからのデータを組み合わせたページの下にチャートもあります。 CodesNifferはその1つです。

問題がどこにあるかを確認するには、最新のビルドの左メニューの「チェックスタイル警告」をクリックするか、特定のビルドをクリックして、その特定のビルドの「チェックスタイル警告」をクリックしてください。

このページでは、問題の説明をはっきりと見ることができます。複数のフィルターを使用できることに注意してください。上のバーでは、新品の問題と修正された問題の数がはっきりとわかります。番号をクリックして変更を明確に確認できます。要約では、優先順位によって分類された質問をすばやく表示できます。

php md

MDはMESS検出器を表します。このツールは、コードにいくつかの問題を示しようとします。これは、潜在的なバグ、未使用のコード、または複雑なアプローチである可能性があります。利用可能なチェックの完全なリストについては、このページを表示できます。すべてのルールを確認するわけではないことに注意してください。 phpmd.xmlファイルをチェックインするルールを定義できます。

PHP CodesNifferと同様に、プロジェクトビューページに、混乱検出が時間の経過とともにどのように進行するかを示すチャートが表示されます。

Analyzing a PHP Project with Jenkins

問題が何であるかを知るには、左側のメニューの「PMD警告」をクリックして、最新のビルドに移動できます。別のビルドを表示する場合は、1つのビルドをクリックして、PMD警告を選択します。 PHP CodesNifferページに似たページに到着します。

Analyzing a PHP Project with Jenkins

上部では、新しい問題がいくつあるか、いくつの問題が固定されているかを再度確認できます。それとは別に、各質問の優先順位を見ることができます。

詳細ページでは、問題を見つける場所に関する詳細情報を入手できます。同じ情報をさまざまな方法で提供するために使用できるタブがたくさんあります。たとえば、「タイプ」をクリックして、各タイプの詳細を確認できます。

Analyzing a PHP Project with Jenkins

ご覧のとおり、「UnsuseformalParameter」が私たちの最大の問題です。それをクリックすると、どのファイルが未使用のパラメーターがあるかを再度確認します。

php cpd

CPDはコピーペースト検出器を表します。このツールはすべてのコードを分析し、複数の重複した行を探します。重複した行がたくさんある場合は、ロジックが複数のクラス間で共有されるように、特定の部分を書き換える必要があることを意味する場合があります。プロジェクトビューページでは、すべてのビルドの全体的な進捗が再び表示されます。

Analyzing a PHP Project with Jenkins

左側のメニューでは、「Duplicate Code」をクリックして、見つかった問題の概要を取得できます。前と同じように、そのビルドの詳細については、[ビルド]をクリックしてください。概要は前のページに似ていることがわかります。詳細については、[詳細]タブをクリックしましょう。

Analyzing a PHP Project with Jenkins

ご覧のとおり、CompanyFilterクラスには58行がUserFilterおよびTimeCategoryFilterクラスにあります。このデータに基づいて、3つのクラスのほとんどを処理する何らかのベースフィルターまたは実装サービスが必要であると判断できます。ソリューションはあなたの状況に依存し、PHP CPDは問題を発見した場所を教えてください。

php依存

PHP依存は、おそらく理解するのが最も難しいメトリックです。 PHP依存は、コードベースで静的コード分析を実行します。 2つの画像と概要ページを生成します。プロジェクトビューページの上部には、画像を表示するHTMLがいくつかあることに気付くかもしれません。

画像が表示されないという事実は、Jenkins構成でスイッチを切り替える必要があることを意味します。 「ジェンキンスの管理」に移動し、「グローバルセキュリティの構成」に移動します。 「マークアップフォーマッタ」の構成に使用できる選択ボックスがあります。 「安全なHTML」に設定し、設定を保存します。プロジェクトビューページに戻ると、HTMLが2つの画像に変換されていることがわかります。

Analyzing a PHP Project with Jenkins

これらの2つのチャートを完全に理解するために、このツールの公式ドキュメントを読むことをお勧めします。ピラミッドの詳細については、このリンクを表示できます。抽象不安定性チャートの詳細については、このリンクを表示できます。

特定のビルドをクリックして、左側のメニューで「JDepend」を選択することで、詳細を取得できます。次の概要が表示されます。

Analyzing a PHP Project with Jenkins

このページの説明も非常に大きく複雑なので、すべてが説明されている公式のドキュメントにあなたを向けました。

phploc

phplocは、アイテムのサイズを迅速に測定するためのツールです。コードの行の総数、静的メソッドの総数などが表示されます。左側のメニューでは、「プロット」をクリックしてこのツールの結果を取得できます。 11のチャートを使用してこの情報を見つけることができます。以下に、コードとコメントの総数と、メソッド、クラス、プロパティ、および関数の総数を示すチャートのスクリーンショットが表示されます。

Analyzing a PHP Project with Jenkins

Analyzing a PHP Project with Jenkins

phpunit

ジェンキンスの大量の統計は、phpunitによって生成されます。概要のみで、phpunitデータによって生成される3つのチャートが表示されます。

Analyzing a PHP Project with Jenkins

最初のチャートは、テストでカバーされているコードの量を示します。この場合、71.1%です。このカバレッジを生成するために、背景はXdebugを使用します。

2番目のチャートは、あなたのがらくたレベルを示しています。 CRAPは、変化リスク分析と予測を表しています。 CRAPは、コードの複雑さとコードで実行されるテストの量をチェックすることによって計算されます。 PHP MDルールを閲覧した場合、PHP MDがコードの複雑さを確認できることに気付いたかもしれませんが、単体テストを考慮していません。 PHP MDがあなたの複雑さをどのように計算するかを学ぶためにここを読んでください。

最終チャートは、成功したテストの数と失敗したテストの数を示しています。この場合、それらはすべて成功しました。

左側のサイドバーメニューには、PHPunitによって生成された2つのプロジェクトがあります。最初のものはがらくたです。このページでは、現在のがらくたレベルがどれだけ高いかを示すいくつかのチャートの概要を見ることができます。一番下では、実際にどの方法ががらくたとしてマークされているかがわかります。カバレッジと複雑さを示す列に気付くでしょう。

2番目のメニュー項目は「Clover HTMLレポート」です。このページでは、ユニットテストによって上書きされるコンテンツの量をディレクトリごとに概説できます。

Analyzing a PHP Project with Jenkins

ディレクトリをクリックして、ソースコードの洞察を得ることができます。ファイルに到達した場合、それを開いて、上書きの量を行ごとに表示できます。どの部分がテストされているか、どのパーツがテストされていないかを示す色を使用します。ラインの上にホバリングすると、ユニットテストがラインと呼ばれる回数を示します。

Analyzing a PHP Project with Jenkins

この例では、IFステートメントの一部が単位テストで呼び出されていないことを明確に確認できます。この場合、これは正しいです。このメソッドは、POSTリクエストではなく、GETリクエストのみを実行します。ユニットテストでPOSTリクエストを実装すると、このIFステートメントはグリーンとマークされます。これにより、ユニットテストの不足している部分を簡単に発見できます。

phpdox

コードとコメントに基づいてドキュメントを生成するための多くのツールがあります。 PHPDOXは、このタスクを実行できる別のツールです。左側のメニューでは、「APIドキュメント」をクリックしてドキュメントに移動できます。 PHPDoxの利点は、他のすべてのツールの結果も含まれていることです。

Analyzing a PHP Project with Jenkins

上部のナビゲーションを使用すると、すべてのクラスの概要を確認できますが、1つのクラスを掘り下げて、すべてのメソッドと説明の概要を確認することもできます。ファイル履歴とソースコードを表示することもできます。

Analyzing a PHP Project with Jenkins

その他のページ

以前の記事で設定したツールに加えて、ジェンキンスはお客様のために追加情報を収集します。インストールした違反プラグインは、PHP CodesNiffer、PHP MD、およびPHP CPDの概要を表示する追加のページを作成します。

特定のビルドをクリックして、左側のメニューに「変更」という名前のメニュー項目を見つけることもできます。このページにアクセスすると、以前のビルドとこのビルドの間に行われたすべてのコミットの概要が表示されます。変更が行われない場合、ページは空白になります。

Analyzing a PHP Project with Jenkins

結論

この記事では、すべてのツールから得られた指標の種類を注意深く調べます。取得するすべての情報は、コマンドラインで取得することもできます。ジェンキンスの利点は、問題をよりよく表すチャートと概要を作成できることです。

最後の部分では、いくつかのツールを置き換えて、いくつかの追加メトリックを追加します。また、CSS、JavaScript、およびHTMLコードを分析する方法についても検討します。

(FAQパーツはここでは省略されています。FAQパーツのコンテンツは記事の主要な内容と非常に繰り返され、重複を避けるために、ここで省略されます。)

以上がJenkinsとのPHPプロジェクトの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPはユーザーのセッションをどのように識別しますか?PHPはユーザーのセッションをどのように識別しますか?May 01, 2025 am 12:23 AM

phpidentifiesauser'ssessionsingsinssessionCookiesIds.1)whensession_start()iscalled、phpgeneratesauniquesidstoredsored incoookienadphpsessidontheuser'sbrowser.2)thisidallowsphptortorieSessiondatadata fromthata

PHPセッションを保護するためのベストプラクティスは何ですか?PHPセッションを保護するためのベストプラクティスは何ですか?May 01, 2025 am 12:22 AM

PHPセッションのセキュリティは、次の測定を通じて達成できます。1。session_regenerate_id()を使用して、ユーザーがログインまたは重要な操作である場合にセッションIDを再生します。 2. HTTPSプロトコルを介して送信セッションIDを暗号化します。 3。Session_Save_Path()を使用して、セッションデータを保存し、権限を正しく設定するためのSecure Directoryを指定します。

PHPセッションファイルはデフォルトで保存されていますか?PHPセッションファイルはデフォルトで保存されていますか?May 01, 2025 am 12:15 AM

phpsessionFilesToredInthededirectoryspecifiedBysession.save_path、通常/tmponunix-likesystemsorc:\ windows \ temponwindows.tocustomizethis:1)uesession_save_path()tosetaCustomdirectory、ensuringit'swritadistradistradistradistradistra

PHPセッションからデータをどのように取得しますか?PHPセッションからデータをどのように取得しますか?May 01, 2025 am 12:11 AM

toretrievedatafrompsession、Startthessession withsession_start()andAccessvariablesshe $ _SessionArray.forexample:1)Startthessession:session_start()

セッションを使用してショッピングカートを実装するにはどうすればよいですか?セッションを使用してショッピングカートを実装するにはどうすればよいですか?May 01, 2025 am 12:10 AM

セッションを使用して効率的なショッピングカートシステムを構築する手順には、次のものがあります。1)セッションの定義と機能を理解します。セッションは、リクエスト全体でユーザーのステータスを維持するために使用されるサーバー側のストレージメカニズムです。 2)ショッピングカートに製品を追加するなど、基本的なセッション管理を実装します。 3)製品の量管理と削除をサポートし、高度な使用状況に拡大します。 4)セッションデータを持続し、安全なセッション識別子を使用することにより、パフォーマンスとセキュリティを最適化します。

PHPでインターフェイスをどのように作成して使用しますか?PHPでインターフェイスをどのように作成して使用しますか?Apr 30, 2025 pm 03:40 PM

この記事では、PHPでインターフェイスを作成、実装、および使用する方法について説明し、コード組織と保守性の利点に焦点を当てています。

crypt()とpassword_hash()の違いは何ですか?crypt()とpassword_hash()の違いは何ですか?Apr 30, 2025 pm 03:39 PM

この記事では、PHPのCrypt()とpassword_hash()の違いについて、パスワードハッシュの違いについて説明し、最新のWebアプリケーションの実装、セキュリティ、および適合性に焦点を当てています。

PHPのクロスサイトスクリプト(XSS)をどのように防ぐことができますか?PHPのクロスサイトスクリプト(XSS)をどのように防ぐことができますか?Apr 30, 2025 pm 03:38 PM

記事では、入力検証、出力エンコード、およびOWASP ESAPIやHTML浄化器などのツールを使用して、PHPのクロスサイトスクリプト(XSS)を防止します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。