ホームページ > バックエンド開発 > PHPチュートリアル > PHP、PHPビルドツールを使用しています

PHP、PHPビルドツールを使用しています

William Shakespeare
リリース: 2025-03-01 10:06:13
オリジナル
320 人が閲覧しました

PHP、PHPビルドツールを使用しています

キーテイクアウト

  • Phingは、Apache Antに基づくPHPプロジェクトビルドツールであり、ユニットテストの実行、データベースの変更の適用、アプリケーションコードの展開などのタスクの自動化に役立ちます。これは、手動プロセスで発生する可能性のあるエラー、特に継続的な統合ワークフローの防止に役立ちます。
  • PhingはXMLファイルを使用してタスクを定義します。これらのタスクは、個別に呼び出すことができたり、他のターゲットに依存したりすることができます。タスクは、メッセージをエコーするなどの単純なアクションから、FTP展開などのより複雑なアクションにまで及びます。 Phingは、カスタムタスクの作成も可能にします
  • PhingはPHP固有の操作に限定されませんが、フレームワーク固有の操作を処理することもできます。これにより、PHPプロジェクトの汎用性の高いツールになります。また、展開プロセスの自動化、エラーの取り扱い、およびドキュメントの生成にも役立ちます。
Phingは、Apache Antに基づくPHPプロジェクトビルドツールです。ビルドシステムは、単一のコマンドを使用してアクショングループを実行するのに役立ちます。なぜPHPがビルドツールが必要なのか疑問に思っている場合は、ローカルマシンにコードとユニットテストを記述し、テストに合格した場合、コードをステージング/制作サーバーにアップロードし、生産データベースに変更を加えることを検討してください。ビルドファイルがなければ、各ステップを手動で実行する必要があります。継続的な統合を行っている場合、同じステップを何度も実行します。その過程で誤って何かを省略し、生産に深刻な問題が発生するのは簡単すぎます。 Phingは、ユニットテストの実行、データベースの変更の適用、アプリケーションコードの展開などなど、タスクを自動化することにより、このような問題を克服するのに役立ちます。この記事では、Phingの基本を示します。 まだ持っていない場合は、洋ナシを使用してフェリングをインストールできます。
shameer@yukon:~$ sudo pear channel-discover pear.phing.info
shameer@yukon:~$ sudo pear install phing/phing
ログイン後にコピー
ログイン後にコピー
PHPunitやPhpDocumentorなどのタスクを使用する場合は、依存するパッケージもインストールする必要があります。

phing hello world

Phingのビルドファイルを作成することがどれほど簡単かを示すには、「Hello World」ビルドファイルから始めましょう。最初にプロジェクトディレクトリを作成し、次に次の内容を持つbuild.xmlという名前のファイルを作成します。
<span><?xml version="1.0" encoding="UTF-8"?>
</span><span><span><span><project</span> name<span>="HelloWorld"</span> default<span>="welcome"</span> basedir<span>="."</span> description<span>="a demo project"</span>></span>
</span> <span><span><span><property</span> name<span>="message"</span> value<span>="Hello World!"</span>/></span>
</span> <span><span><span><target</span> name<span>="welcome"</span>></span>
</span>  <span><span><span><echo</span> msg<span>="${message}"</span>/></span>
</span> <span><span><span></target</span>></span>
</span><span><span><span></project</span>></span></span>
ログイン後にコピー
ログイン後にコピー
コマンドラインから、ディレクトリに移動し、フィンを実行します。
shameer@yukon:~/HelloWorld$ phing
Buildfile: /home/shameer/HelloWorld/build.xml

HelloWorld > welcome:

     [echo] Hello World!

BUILD FINISHED

Total time: 0.2275 seconds
ログイン後にコピー
ログイン後にコピー
要素は、ビルドファイルのルート要素です。属性のデフォルトが必要であり、コマンドラインに提供されていない場合に呼び出すデフォルトのターゲットを指定します。それとは別に、プロジェクト名、プロジェクトベースディレクトリ、および説明を整理するのに役立つ説明を指定することもできます。 要素は、実行できるタスクの名前付きグループを表します。たとえば、バックアップを実行したり、データベースを更新したりするために、さまざまなターゲットが定義される場合があります。ターゲットは、実行する前に実行する必要がある別のターゲットに依存することもできます。 要素はタスクであり、実行できる単一のアクションです。 Phingには、ディレクトリの作成などの単純なタスクから、XSLT変換の実行などのより複雑なタスクに至るまで、コアタスクが数多くあります。ただし、Phingが提供するタスクに限定されません。カスタムタスクを作成することもできます。 要素は、ビルドファイル全体で後で使用できる名前の値を定義します。プロパティの値を参照するには、「$ {」と「}の間で名前を指定します「。プロパティ名はPHINGでケースに敏感であることに注意してください。 ビルドファイルbuild.xmlに名前を付けることは必須ではありませんが、Phingはデフォルトでこの名前を探します。別の名前を使用する場合は、Phingコマンドへの引数としてビルドファイルを指定する必要があります。
shameer@yukon:~$ sudo pear channel-discover pear.phing.info
shameer@yukon:~$ sudo pear install phing/phing
ログイン後にコピー
ログイン後にコピー
コマンドラインで1つ以上のターゲット名を提供することにより、デフォルト以外のターゲットを呼び出すこともできます。
<span><?xml version="1.0" encoding="UTF-8"?>
</span><span><span><span><project</span> name<span>="HelloWorld"</span> default<span>="welcome"</span> basedir<span>="."</span> description<span>="a demo project"</span>></span>
</span> <span><span><span><property</span> name<span>="message"</span> value<span>="Hello World!"</span>/></span>
</span> <span><span><span><target</span> name<span>="welcome"</span>></span>
</span>  <span><span><span><echo</span> msg<span>="${message}"</span>/></span>
</span> <span><span><span></target</span>></span>
</span><span><span><span></project</span>></span></span>
ログイン後にコピー
ログイン後にコピー

複数のターゲット

ビルドスクリプトを修正し、追加のターゲットを追加しましょう。たとえば、プロジェクトの次のディレクトリ構造が整っていると仮定します。

PHP、PHPビルドツールを使用しています

build.xmlを更新します だから今は次のように見えます:
shameer@yukon:~/HelloWorld$ phing
Buildfile: /home/shameer/HelloWorld/build.xml

HelloWorld > welcome:

     [echo] Hello World!

BUILD FINISHED

Total time: 0.2275 seconds
ログイン後にコピー
ログイン後にコピー
2つのターゲットが追加され、テストとビルドが追加され、デフォルトのターゲットが変更されました。プロジェクトディレクトリからPhingを実行すると、ビルドターゲットを呼び出し、このターゲットはテストターゲットに依存するため、Phingは最初にテストターゲットを実行します。 タスクはphpunitを呼び出します。単位テストのいずれかが失敗した場合、ビルドプロセスは継続しないでください。 任意の数のnested 要素からファイルを含めることができます。 ユニットテストが正常に実行された後、を使用してで宛先ディレクトリに指定されたビルドターゲットコピーファイルをコピーします。ここでファイル名を提供する代わりに、refidが使用されていることに注意してください。これは、ID srcfilesで以前に宣言されたを参照します。ファイルセットを定義し、複雑な正規表現がある場合、またはいくつかの場所で同じファイルを参照する必要がある場合に、このように参照すると役立ちます。 タスクは、指定された資格情報を使用してFTPを使用してリモートサーバーに接続し、ファイルセットで指定されたファイルを転送します。 要約

この記事では、PHPビルドツールフィングを紹介しました。 Phingには、ここで説明したものよりもはるかに多くのことがあります。たとえば、データベースの移行を支援するために使用できます。 Phingの優れたドキュメントを読んで、この強力なツールができることをすべて確認することをお勧めします。 Dino O / ShutterStock PHINGの使用に関するよくある質問(FAQ) Phing Build Fileの基本構造は何ですか?

Phing Buildファイルは、実行するタスクを定義するXMLファイルです。名前、デフォルト、basedirなどの属性を含む

タグから始まります。

タグは、一緒に実行できる一連のタスクを定義します。各タスクは、

などの特定のXMLタグで表されます。タスクは、ターゲットに表示される順序で実行されます。

継続的な統合にPHINGを使用するにはどうすればよいですか?

Phingを継続的な統合で使用して、ビルドおよび展開プロセスを自動化できます。コードの糸くず、ユニットテスト、ドキュメントの生成、コードのパッケージ化、およびサーバーに展開するためのタスクを定義できます。これらのタスクは、コードリポジトリに変更がある場合はいつでも自動的にトリガーできます。

カスタムタスクでフィンを拡張するにはどうすればよいですか?

Phingを使用すると、タスククラスを拡張してカスタムタスクを作成できます。タスクの動作を定義するメイン()メソッドを実装する必要があります。カスタムタスククラスが作成されたら、ビルドファイルのタグを使用してタスクを登録できます。

アリやメイベンなどの他のビルドツールの違いは何ですか? PhingはANTなどのビルドファイルにXMLを使用しますが、PHPunitテストの実行やPHPDocumentorドキュメントの生成など、PHP固有の操作のためのタスクが組み込まれています。一方、Mavenは慣習と構成アプローチを使用しており、より複雑なライフサイクルを備えています。特定の条件が満たされている場合は、

タスクを使用してビルドプロセスを停止できます。タスクを使用して例外をキャッチし、適切に処理することもできます。さらに、エラーが発生したときに表示される情報の量を制御するようにロギングレベルを構成できます。移行の実行やデータベースのシードなどのフレームワーク固有の操作を処理するタスクを定義できます。

Phingタスクを並行して実行するにはどうすればよいですか?ただし、これを

タスクを使用してバックグラウンドで個別のフィンプロセスを実行することで実現できます。

Phingを使用してアプリケーションを展開できますか?タスクを定義して、アプリケーションをパッケージ化し、サーバーにアップロードし、必要なセットアップタスクを実行できます。PHINGで変数を使用するにはどうすればよいですか?

タグを使用して変数を定義し、ビルドファイルの後半で使用できます。変数は、プロパティファイル、コマンドライン、または環境から設定できます。

Phingを使用してプロジェクトのドキュメントを生成できますか?ソースおよび宛先ディレクトリ、出力形式、およびその他のオプションを指定することにより、ドキュメント生成プロセスを構成できます。

以上がPHP、PHPビルドツールを使用していますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート