前の記事では、Jenkinsのインストールを行って、すべてを準備しました。この記事では、実際にプロジェクトを準備することで継続します。以前からジェンキンスのセットアップを準備している場合は、前の部分を通過する必要はありません。これを非常にうまくフォローできます。
キーテイクアウト- JenkinsでPHPプロジェクトを準備するには、PHPunitやPHP-Codesnifferなどのツールを利用できるようにすることをお勧めします。これは、Jenkinsサーバーにグローバルにパッケージをインストールするか、Composer.jsonファイルで依存関係を定義することで実現できます。
- JenkinsサーバーでANTを使用して、ソフトウェアビルドプロセスを自動化します。ターゲットは構成ファイルで定義され、ANTはこれらのターゲットに基づいてアクションを実行します。 build.xmlファイルは、Jenkinsサーバーでタスクを実行するためにANTのプロジェクトに追加されます。 build.xmlファイルには、特定のプロジェクトに合わせて変更が必要になる場合があります。これには、phpunitのようなツールがどこにあるかを定義し、プロジェクトに正しく一致するようにいくつかのコマンドをクリーンアップすることが含まれます。 すべてのQAツールが予想どおりに実行されるようにするために、
- 新しいターゲットを作成する必要があります。これには、コンポーザーやバウアーによって規制されている依存関係など、ジェンキンスでプロジェクトを正しくセットアップするための要件を扱うことが含まれます。 プロジェクトを準備した後、ジェンキンスでプロジェクトを作成して構成する必要があります。手順には、Jenkins内にGitHubプラグインのインストール、新しいアイテムの作成、ソース管理の構成が含まれます。その後、プロジェクトのサイドメニューで「今すぐビルド」をクリックしてビルドを開始できます。
- 作曲家の準備
- 最初にプロジェクトを準備します。 Sebastian Bergmannが提供するプロジェクトを使用できますが、それはむしろ基本的なプロジェクトであり、Jenkinsで問題なく実行されます。この記事では、いくつかのハードルを克服する必要がある別のリポジトリを使用します。私たちは私たちの基礎としてジャンフのフォークを使用します。
- 何よりもまず、PHPunitやPHP-Codesnifferなどのツールが利用可能であることを確認する必要があります。これを2つの異なる方法で行うことができます。 Pearを介してJenkinsサーバーにパッケージをグローバルにインストールするか、Composer.jsonファイルの依存関係を定義します。後者の方法を使用することにしたので、これらのツールのバージョンを独自のローカルマシンとJenkinsで簡単に制御できます。そのため、次の行をComposer.jsonファイルに追加し、Composer Updateを実行することから始めます。
Ant
を準備しますJenkinsサーバーでは、ANTを使用します。したがって、ANTがサーバーにまだインストールされていない場合は、次のコマンドを実行してください。
"require-dev": { "squizlabs/php_codesniffer": "~1.5.*", "phpmd/phpmd": "~2.1.*", "sebastian/phpcpd": "~2.0.*", "pdepend/pdepend": "~2.0.*", "phploc/phploc": "~2.0.*", "phpunit/phpunit": "~4.3.*", "theseer/phpdox": "~0.7.*", },
Antは、ソフトウェアビルドプロセスを自動化するのに役立ちます。構成ファイルで、ターゲットと呼ばれるタスクを定義します。 ANTはこのファイルを読み取り、適切なアクションを実行します。依存関係を定義して、ANTがこれらのタスクを実行する順序を示すことができます。構成ファイルは、いわゆるbuild.xmlファイルです。これをプロジェクトに追加するので、AntはJenkinsサーバーでこれらのタスクを実行できます。ここで見つけることができるSebastian Bergmannが提供するテンプレートを使用します。これをプロジェクトのルートに追加します
アリを実行するには、コマンドラインでアリのビルドをキックオフできます。これは、ANTがビルドターゲットを実行することを意味します。パラメーターが指定されていない場合、ANTはデフォルトとして構成に示されているようにターゲットを実行します。この場合、これもビルドされます。ビルドターゲットを詳しく見てみましょう。
ターゲットは空ですが、他の多くのターゲットに依存します。最初に準備ターゲットを実行し、すべてのターゲットが実行されるまでLINTターゲットを続行します。 たとえば、phploc-ciターゲットを見てみましょう。
sudo apt-get install ant
このターゲットはかなり理解しやすいです。準備ターゲットに依存することに気付くでしょう。それはすでにビルドターゲットによって実行されていたため、再び実行されません。次に、ANTによって実行されるPHPLOCである実行可能ファイルを取得します。これを以前に作曲家にインストールしました。最後に、PHPLOC固有の引数が表示されます。 ANTは、このターゲット構成に基づいて次のコマンドライン入力を実行します。
<span><span><span><target> name<span>="build"</span> depends<span>="prepare,lint,phploc-ci,pdepend,phpmd-ci,phpcs-ci,phpcpd-ci,phpunit,phpdox"</span> description<span>=""</span>/></target></span></span></span>$ {toolsdir}および$ {bedistir}は2つの変数です。それらがどのように構成されているかによって、それらは全体的なコマンドライン出力に影響を与える可能性があります
build.xmlファイル全体を調べると、特定のツールの他の3つの個別の構成ファイルに依存していることがわかります。 build/phpmd.xml、build/phpdox.xml、build/phpunit.xml。これらの構成ファイルは、実際のツールによって要求されます。詳細については、それぞれのドキュメントをご覧ください。
それで、私たちは終わりましたか?残念ながら、まだ。 build.xmlファイルは非常に一般的であり、プロジェクトに完全に適していません。まず、phpunitのようなツールを見つけることができる場所を定義する必要があります。私たちの作曲家は、これらをプロジェクトのルートにあるBinディレクトリに自動的にインストールしました。 ToolsDirプロパティを正しい値に変更する必要があります。
"require-dev": { "squizlabs/php_codesniffer": "~1.5.*", "phpmd/phpmd": "~2.1.*", "sebastian/phpcpd": "~2.0.*", "pdepend/pdepend": "~2.0.*", "phploc/phploc": "~2.0.*", "phpunit/phpunit": "~4.3.*", "theseer/phpdox": "~0.7.*", },
いくつかのコマンドをクリーンアップすることもできます。現在のbuild.xmlファイルは、一方でSRCディレクトリがあり、一方でテストディレクトリがあることを定義しています。 Symfony2にはSRCディレクトリにテストが含まれているため、この例のようなテストディレクトリへのすべてのパスを削除できます。
sudo apt-get install ant
必須ではありませんが、プロジェクトを正しく一致させるために、すべてをできるだけきれいに保つことを好みます。 最後に、この記事を書いているときにbuild.xmlファイルに示されているPHPDoxの現在の構成は、私の場合の最新バージョンでは機能しません。以下のようにターゲットを変更したため、構成ファイルを正しく読み取ります。
新しいターゲットの作成すべてのQAツールが予想どおりに実行されるようにするために、すべてがセットアップされています。しかし、私たちのプロジェクトはもう少し複雑です。リポジトリを分析した場合、依存関係は作曲家とBowerによって規制されていることに気付くでしょう。 Symfonyプロジェクトであるため、デフォルトのパラメーター.ymlファイルも必要です。ジェンキンスでプロジェクトを正しくセットアップできるようにするには、これらの要件に対処する必要があります。
パラメーター.ymlファイルから始めましょう。パラメーターのデフォルトコンテンツを使用できます。Iml.Distなので、そのファイルをコピーするだけです。 CPコマンドを実行するコピーパラメーターという名前の新しいターゲットを作成することから始めます。<span><span><span><target> name<span>="build"</span> depends<span>="prepare,lint,phploc-ci,pdepend,phpmd-ci,phpcs-ci,phpcpd-ci,phpunit,phpdox"</span> description<span>=""</span>/></target></span></span></span>
次は作曲家とバウアーです。次のコマンドを実行して、これらをジェンキンスサーバーにグローバルにインストールすることにしました。
[ed:WindowsでホストされているVMでこれをすべて実行している場合、BowerphpはBowerよりもはるかに優れた選択肢になることに注意してください。次に、作曲家のターゲットを作成します。
<span><span><span><target> name<span>="phploc-ci"</span> depends<span>="prepare"</span> description<span>="Measure project size using PHPLOC and log result in CSV and XML format. Intended for usage within a continuous integration environment."</span>></target></span> </span> <span><span><span><exec> executable<span>="${toolsdir}phploc"</span>></exec></span> </span> <span><span><span><arg> value<span>="--count-tests"</span>/></arg></span> </span> <span><span><span><arg> value<span>="--log-csv"</span>/></arg></span> </span> <span><span><span><arg> path<span>="${basedir}/build/logs/phploc.csv"</span>/></arg></span> </span> <span><span><span><arg> value<span>="--log-xml"</span>/></arg></span> </span> <span><span><span><arg> path<span>="${basedir}/build/logs/phploc.xml"</span>/></arg></span> </span> <span><span><span><arg> path<span>="${basedir}/src"</span>/></arg></span> </span> <span><span><span><arg> path<span>="${basedir}/tests"</span>/></arg></span> </span> <span><span><span></span>></span> </span><span><span><span></span>></span></span></span></span></span></span></span></span></span></span></span>
Symfony_Envをテストするように設定することが重要です。Symfonyは、テストキャッシュディレクトリをクリアする必要があることを知っています。
bowerを続けましょう。phploc --count-tests --log-csv /build/logs/phploc.csv --log-xml /build/logs/phploc.xml /src /tests
最後にする必要があることは、これらのターゲットが実行されることを確認することです。したがって、ビルドターゲットを変更し、それらを実行する順に新しく作成された3つのターゲットを追加します。
git最後に行う必要があるのは、.gitignoreファイルを準備することです。ローカルマシンでANTターゲットを実行したい場合は、ビルドディレクトリにはリポジトリにコミットしたくないログファイルが充填されます。したがって、.gitignoreファイルに次の行を追加します。
<span><span><span><property> name<span>="toolsdir"</span> value<span>="bin/"</span> /></property></span></span></span>
おそらく、私たちが行ったすべての変更に少し混乱したでしょう。あなたの便利さのために、上記のすべての変更を伴うコミットへの直接的なリンクを次に示します。
ジェンキンスでプロジェクトを作成します
私たちのプロジェクトの準備ができました。ジェンキンスに戻って構成しましょう。これは、この記事で最も簡単な部分になります。<span><span><span><arg> path<span>="${basedir}/tests"</span>/></arg></span></span></span>
プロジェクトはGitHubにあるため、Jenkins内にGitHubプラグインをインストールすることをお勧めします。独自のGitサーバーを使用している場合は、通常のGitプラグインをインストールできます。プラグインのインストール方法が不明な場合は、前の記事を確認してください。
概要に戻るときは、左メニューで新しいアイテムをクリックする必要があります。アイテム名として、ジャンフに記入します。次に、既存のアイテムをコピーするオプションを選択し、プロジェクトとしてPHP-Templateを入力します。
このプロジェクトの構成ページにすぐに移動します。最初に、ビルドのチェックを外して、ビルドがSAVEで有効になるようにします。 GitHubプロジェクト入力フィールド内で、URLをGitHubプロジェクトに記入します。
私たちがしなければならない最後のことは、ソース管理を選択することです。私たちの場合、これはgitです。次に、リポジトリリンクに記入する必要があります。 HTTPSリンクを使用する場合、追加の資格情報を提供する必要はありません。どのブランチを構築するかを決定できますが、マスターブランチしか持っていないので、そのままにしておきます。
構成が完了しました。事前定義されたテンプレートを使用したため、とても簡単です。下にスクロールすると、テンプレートが設定したものが正確に表示されます。継続する前に構成を保存することを忘れないでくださいビルドを開始
これまでのすべての手順に従った場合、ビルドを開始できるようになりました。プロジェクトの左側のメニューで今すぐビルドをクリックして、ビルドを開始できます。左下のテーブルにビルドが表示されていることに気付くでしょう。
ビルド自体をクリックすると、この特定のビルドのオプションを備えた新しいサイドメニューが表示されます。コンソール出力をクリックして、何が起こっているのかを正確に確認してください。私の場合、最初のビルドは、いくつかのPHP拡張機能が欠落しているために失敗しました。
おそらく、ビルドが成功したときに青いボールの代わりに緑色のボールを期待していたでしょう。青いボールの代わりにグリーンボールを表示できるプラグインがあります。 結論
この記事では、ビルドを成功させるために取り組みました。私たちはプロジェクトを準備し、ジェンキンス内で仕事を作らなければなりませんでした。最後に、いくつかのライブラリをインストールするのを忘れていたので、最初の数回のビルドをデバッグする必要がありました。次の部分では、ジェンキンスが返すすべての結果を見てみましょう。 Jenkinsを使用したPHPプロジェクトの構築に関するよくある質問(FAQ) PHPプロジェクトのためにJenkinsをセットアップするにはどうすればよいですか?
Jenkinsを使用して、さまざまな展開ツールと統合してPHPアプリケーションを展開できます。たとえば、SSHプラグインを使用してアプリケーションをリモートサーバーに展開するか、DockerプラグインをDockerコンテナとして展開できます。 Jenkinsジョブでこれらのプラグインを構成する必要があります。プロジェクトを構築するたびにアプリケーションを自動的に展開します。統合は、開発者がコードを頻繁に共有リポジトリに統合するソフトウェア開発慣行です。通常は1日に複数回です。これにより、統合の問題を早期にキャッチし、ソフトウェアの更新を提供するために必要な時間と労力を短縮するのに役立ちます。 Jenkinsは、リポジトリに変更をコミットするたびにソフトウェアの構築、テスト、展開のプロセスを自動化することにより、継続的な統合をサポートします。配信は、コードの変更が自動的に構築、テストされ、生産のリリースのために準備されるソフトウェア開発慣行です。リリースのリスクを減らし、より頻繁にすることを目指しています。 Jenkinsは、統合やテストから配信と展開まで、ソフトウェアリリースプロセス全体を自動化することにより、継続的配信をサポートしています。これにより、Gitリポジトリに変更をプッシュするたびに、ソフトウェアを自動的に構築、テスト、展開できます。これを構成して、GITプラグインをインストールし、GITリポジトリにWebhookを設定して、変更がプッシュされるたびにJenkinsビルドをトリガーします。 Jenkinsは、問題のトラブルシューティングに役立ついくつかのツールを提供しています。これには、ビルドログが含まれます。これには、ビルド中に起こったことに関する詳細情報と、Jenkinsサーバーの全体的な動作に関する情報を提供できるシステムログが含まれます。 Jenkins CLIまたはREST APIを使用してJenkinsサーバーと対話して問題を診断することもできます。まず、Jenkinsサーバーが最新バージョンを実行していることを確認する必要があります。これには、最新のセキュリティパッチが含まれるためです。また、Jenkinsサーバーとユーザー間で通信を暗号化するHTTPSを使用するようにJenkinsを構成する必要があります。さらに、認証と承認メカニズムを使用してJenkinsサーバーへのアクセスを制限し、Jenkinsユーザーの許可をタスクを実行するために必要なもののみに制限する必要があります。Jenkinsを使用してPHPアプリケーションを展開するにはどうすればよいですか?
以上がジェンキンスでPHPプロジェクトの準備と構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

2012年のFacebookによる有名な買収に続いて、Instagramはサードパーティの使用のために2セットのAPIを採用しました。これらはInstagramグラフAPIとInstagram Basic Display APIです。

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

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

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

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

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

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

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

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

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
