国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ バックエンド開発 PHPチュートリアル JenkinsとのPHPプロジェクトの分析

JenkinsとのPHPプロジェクトの分析

Feb 19, 2025 am 11:41 AM

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

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

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

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

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

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

php codesniffer

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

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

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

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

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

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

php md

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

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

Analyzing a PHP Project with Jenkins

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

Analyzing a PHP Project with Jenkins

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

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

Analyzing a PHP Project with Jenkins

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

php cpd

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

Analyzing a PHP Project with Jenkins

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

Analyzing a PHP Project with Jenkins

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

php依存

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

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

Analyzing a PHP Project with Jenkins

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

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

Analyzing a PHP Project with Jenkins

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

phploc

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

Analyzing a PHP Project with Jenkins

Analyzing a PHP Project with Jenkins

phpunit

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

Analyzing a PHP Project with Jenkins

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

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

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

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

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

Analyzing a PHP Project with Jenkins

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

Analyzing a PHP Project with Jenkins

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

phpdox

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

Analyzing a PHP Project with Jenkins

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

Analyzing a PHP Project with Jenkins

その他のページ

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

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

Analyzing a PHP Project with Jenkins

結(jié)論

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

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

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

以上がJenkinsとのPHPプロジェクトの分析の詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPに認証と承認を?qū)g裝するにはどうすればよいですか? PHPに認証と承認を?qū)g裝するにはどうすればよいですか? Jun 20, 2025 am 01:03 AM

tosecurelyhandLeauthenticationAndauthorizationInizationInization、followTheSteps:1.LwayShashPasswordswithPassword_hash()andverifyusingpassword_verify()、usepreparedStatementStatementStatementStatementStatementStain、andstoreUserdatain $ _SessionAfterlogin.2.implementRementRementRementRementRementRementRementRole

PHPでファイルアップロードを安全に処理するにはどうすればよいですか? PHPでファイルアップロードを安全に処理するにはどうすればよいですか? Jun 19, 2025 am 01:05 AM

PHPでファイルアップロードを安全に処理するために、コアはファイルタイプを確認し、ファイルの名前を変更し、権限を制限することです。 1。Finfo_File()を使用して実際のMIMEタイプを確認し、Image/JPEGなどの特定のタイプのみが許可されます。 2。uniqid()を使用してランダムファイル名を生成し、非webルートディレクトリに保存します。 3. PHP.iniおよびHTMLフォームを介してファイルサイズを制限し、ディレクトリ権限を0755に設定します。 4. Clamavを使用してマルウェアをスキャンしてセキュリティを強化します。これらの手順は、セキュリティの脆弱性を効果的に防止し、ファイルのアップロードプロセスが安全で信頼性が高いことを確認します。

PHPの==(ゆるい比較)と===(厳密な比較)の違いは何ですか? PHPの==(ゆるい比較)と===(厳密な比較)の違いは何ですか? Jun 19, 2025 am 01:07 AM

PHPでは、==と==の主な違いは、タイプチェックの厳格さです。 ==タイプ変換は比較の前に実行されます。たとえば、5 == "5"はtrueを返します。===リクエストは、trueが返される前に値とタイプが同じであることを要求します。たとえば、5 === "5"はfalseを返します。使用シナリオでは、===はより安全で、最初に使用する必要があります。==は、タイプ変換が必要な場合にのみ使用されます。

PHP(、 - 、 *、 /、%)で算術(shù)操作を?qū)g行するにはどうすればよいですか? PHP(、 - 、 *、 /、%)で算術(shù)操作を?qū)g行するにはどうすればよいですか? Jun 19, 2025 pm 05:13 PM

PHPで基本的な數(shù)學操作を使用する方法は次のとおりです。1。追加標識は、整數(shù)と浮動小數(shù)點數(shù)をサポートし、変數(shù)にも使用できます。文字列番號は自動的に変換されますが、依存関係には推奨されません。 2。減算標識の使用 - 標識、変數(shù)は同じであり、タイプ変換も適用されます。 3.乗算サインは、數(shù)字や類似の文字列に適した標識を使用します。 4.分割はゼロで割らないようにする必要がある分割 /標識を使用し、結(jié)果は浮動小數(shù)點數(shù)である可能性があることに注意してください。 5.モジュラス標識を採取することは、奇妙な數(shù)と偶數(shù)を判斷するために使用でき、負の數(shù)を処理する場合、殘りの兆候は配當と一致しています。これらの演算子を正しく使用するための鍵は、データ型が明確であり、境界の狀況がうまく処理されるようにすることです。

PHPのNOSQLデータベース(Mongodb、Redisなど)とどのように対話できますか? PHPのNOSQLデータベース(Mongodb、Redisなど)とどのように対話できますか? Jun 19, 2025 am 01:07 AM

はい、PHPは、特定の拡張機能またはライブラリを使用して、MongoDBやRedisなどのNOSQLデータベースと対話できます。まず、MongoDBPHPドライバー(PECLまたはComposerを介してインストール)を使用して、クライアントインスタンスを作成し、データベースとコレクションを操作し、挿入、クエリ、集約、その他の操作をサポートします。第二に、PredisライブラリまたはPhpredis拡張機能を使用してRedisに接続し、キー価値設定と取得を?qū)g行し、高性能シナリオにPhpredisを推奨しますが、Predisは迅速な展開に便利です。どちらも生産環(huán)境に適しており、十分に文書化されています。

最新のPHP開発とベストプラクティスを最新の狀態(tài)に保つにはどうすればよいですか? 最新のPHP開発とベストプラクティスを最新の狀態(tài)に保つにはどうすればよいですか? Jun 23, 2025 am 12:56 AM

postaycurrentwithpdevellyments andbest practices、follow keynewsourceslikephp.netandphpweekly、egagewithcommunitiessonforums andconferences、keeptooling and gradivallyadoptnewfeatures、andreadorcontributeTopensourceprijeprijeprijeptrijeprijeprests.

PHPとは何ですか、そしてなぜそれがWeb開発に使用されるのですか? PHPとは何ですか、そしてなぜそれがWeb開発に使用されるのですか? Jun 23, 2025 am 12:55 AM

PhpBecamepopularforwebdevelopmentduetoitseaseaseaseaseasease、SeamlessintegrationWithhtml、widespreadhostingsupport、andalargeecosystemincludingframeworkelavelandcmsplatformslikewordspresspressinsinsionsisionsisionsisionsisionsionsionsisionsionsionsisionsisions

PHPタイムゾーンを設定する方法は? PHPタイムゾーンを設定する方法は? Jun 25, 2025 am 01:00 AM

tosettherighttimezoneInphp、usedate_default_timezone_set()functionthestthestofyourscriptwithavalididentifiersiersuchas'america/new_york'.1.usedate_default_timezone_set()beforeanydate/timefunctions.2.2.Altertentally、confuturethephp.inifilebyset.

See all articles