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

ホームページ バックエンド開発 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プロジェクトツールと互換性があり、各ツールは獨自のコード分析の洞察とメトリックを提供します。ジェンキンスの利點は、チャートと概要を生成し、コマンドラインの検索よりも効率的に問題を提示し、コードの問題を識別して解決しやすくすることです。

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

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

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

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

php codesniffer

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

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

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

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

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

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

php md

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

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

Analyzing a PHP Project with Jenkins

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

Analyzing a PHP Project with Jenkins

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

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

Analyzing a PHP Project with Jenkins

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

php cpd

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

Analyzing a PHP Project with Jenkins

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

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」に設(shè)定し、設(shè)定を保存します。プロジェクトビューページに戻ると、HTMLが2つの畫像に変換されていることがわかります。

Analyzing a PHP Project with Jenkins

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

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

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がコードの複雑さを確認(rèn)できることに気付いたかもしれませんが、単體テストを考慮していません。 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ステートメントの一部が単位テストで呼び出されていないことを明確に確認(rèn)できます。この場合、これは正しいです。このメソッドは、POSTリクエストではなく、GETリクエストのみを?qū)g行します。ユニットテストでPOSTリクエストを?qū)g裝すると、このIFステートメントはグリーンとマークされます。これにより、ユニットテストの不足している部分を簡単に発見できます。

phpdox

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

Analyzing a PHP Project with Jenkins

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

Analyzing a PHP Project with Jenkins

その他のページ

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

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

Analyzing a PHP Project with Jenkins

結(jié)論

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

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

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

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

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

ホット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 Regex パスワード強度のPHP Regex Jul 03, 2025 am 10:33 AM

パスワードの強度を判斷するには、定期的な処理と論理処理を組み合わせる必要があります?;镜膜室摔弦韵陇蓼欷蓼?。1。長さは8桁以上です。 2。少なくとも小文字、大文字、および數(shù)字を含む。 3。特別な文字制限を追加できます。高度な側(cè)面に関しては、文字の継続的な重複と漸進的/減少シーケンスを避ける必要があります。これには、PHP機能検出が必要です。同時に、ブラックリストを?qū)毪筏?、パスワードや123456などの一般的な弱いパスワードをフィルタリングする必要があります。最後に、評価の精度を向上させるためにZXCVBNライブラリを組み合わせることをお勧めします。

PHP変數(shù)スコープは説明されています PHP変數(shù)スコープは説明されています Jul 17, 2025 am 04:16 AM

PHP変數(shù)スコープの一般的な問題とソリューションには次のものが含まれます。1。グローバル変數(shù)は関數(shù)內(nèi)でアクセスできず、グローバルキーワードまたはパラメーターを使用して渡す必要があります。 2。靜的変數(shù)は靜的で宣言され、1回のみ初期化され、値は複數(shù)の呼び出し間で維持されます。 3. $ _GETや$ _POSTなどのハイパーグローバル変數(shù)は、任意の範(fàn)囲で直接使用できますが、安全なフィルタリングに注意を払う必要があります。 4.匿名関數(shù)は、使用キーワードを使用して親スコープ変數(shù)を?qū)毪工氡匾ⅳ?、外部変?shù)を変更する場合は、參照を渡す必要があります。これらのルールを習(xí)得すると、エラーを回避し、コードの安定性が向上するのに役立ちます。

ファイルアップロードをPHPで安全に処理する方法は? ファイルアップロードをPHPで安全に処理する方法は? Jul 08, 2025 am 02:37 AM

PHPファイルのアップロードを安全に処理するには、ソースとタイプを確認(rèn)し、ファイル名とパスを制御し、サーバー制限を設(shè)定し、メディアファイルを2回プロセスする必要があります。 1.トークンを介してCSRFを防ぐためにアップロードソースを確認(rèn)し、ホワイトリストコントロールを使用してFINFO_FILEを介して実際のMIMEタイプを検出します。 2。ファイルをランダムな文字列に変更し、検出タイプに従って非WEBディレクトリに保存する拡張機能を決定します。 3。PHP構(gòu)成は、アップロードサイズを制限し、一時的なディレクトリnginx/apacheはアップロードディレクトリへのアクセスを禁止します。 4. GDライブラリは寫真を再利用して、潛在的な悪意のあるデータをクリアします。

PHPでコードをコメントします PHPでコードをコメントします Jul 18, 2025 am 04:57 AM

PHPコメントコードには3つの一般的な方法があります。1。//#を使用して1行のコードをブロックすると、//を使用することをお勧めします。 2。使用/.../複數(shù)の行でコードブロックをラップするには、ネストすることはできませんが交差することができます。 3. / if(){}を使用するなどの組み合わせスキルコメントロジックブロックを制御するか、エディターショートカットキーで効率を改善するには、シンボルを閉じることに注意を払い、使用時にネストを避ける必要があります。

発電機はPHPでどのように機能しますか? 発電機はPHPでどのように機能しますか? Jul 11, 2025 am 03:12 AM

ageneratorinphpisamemory-efficientwaytoateate-overdeatatasetasetasetasetsinging valueseintimeintimeturningthemallatonce.1.generatorsususedeywordproducevaluesedemand、memoryusage.2を還元すること。2

PHPコメントを書くためのヒント PHPコメントを書くためのヒント Jul 18, 2025 am 04:51 AM

PHPコメントを書くための鍵は、目的と仕様を明確にすることです。コメントは、「何が行われたのか」ではなく「なぜ」を説明する必要があり、冗長性や単純さを避けてください。 1.読みやすさとツールの互換性を向上させるために、クラスおよびメソッドの説明にdocblock(/*/)などの統(tǒng)合形式を使用します。 2。JSジャンプを手動で出力する必要がある理由など、ロジックの背後にある理由を強調(diào)します。 3.複雑なコードの前に概要説明を追加し、手順でプロセスを説明し、全體的なアイデアを理解するのに役立ちます。 4. TodoとFixmeを合理的に使用して、To Doアイテムと問題をマークして、その後の追跡とコラボレーションを促進します。優(yōu)れた注釈は、通信コストを削減し、コードメンテナンスの効率を向上させることができます。

クイックPHPインストールチュートリアル クイックPHPインストールチュートリアル Jul 18, 2025 am 04:52 AM

to installphpquickly、usexampponwindowsorhomebrewonmacos.1.onwindows、downloadandinstallxampp、selectcomponents、startapache、andplacefilesinhtdocs.2

PHPの學(xué)習(xí):初心者向けガイド PHPの學(xué)習(xí):初心者向けガイド Jul 18, 2025 am 04:54 AM

tolearnphpefctivially、startbysettingupalocalserverenvironmentusingtoolslikexamppandacodeeditorlikevscode.1)instalxamppforapa Che、mysql、andphp.2)useocodeeditorforsyntaxsupport.3)testyoursetup withasimplephpfile.next、Learnpbasicsincludingvariables、ech

See all articles