検索

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 までご連絡ください。
Laravelでフラッシュセッションデータを使用しますLaravelでフラッシュセッションデータを使用しますMar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

LaravelのバックエンドでReactアプリを構築する:パート2、ReactLaravelのバックエンドでReactアプリを構築する:パート2、ReactMar 04, 2025 am 09:33 AM

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

PHPのカール:REST APIでPHPカール拡張機能を使用する方法PHPのカール:REST APIでPHPカール拡張機能を使用する方法Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキングLaravelテストでの簡略化されたHTTP応答のモッキングMar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

Codecanyonで12の最高のPHPチャットスクリプトCodecanyonで12の最高のPHPチャットスクリプトMar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

Laravelの通知Laravelの通知Mar 04, 2025 am 09:22 AM

この記事では、Laravel Webフレームワークの通知システムを検討します。 Laravelの通知システムを使用すると、さまざまなチャネルでユーザーに通知を送信できます。今日は、通知ovを送信する方法について説明します

PHPにおける後期静的結合の概念を説明します。PHPにおける後期静的結合の概念を説明します。Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

PHPロギング:PHPログ分析のベストプラクティスPHPロギング:PHPログ分析のベストプラクティスMar 10, 2025 pm 02:32 PM

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

mPDF

mPDF

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