PhingとPHPUnderControlの違いは何ですか?
-
02-07-2019 - |
質問
現在、手動のセットアップおよび構成スクリプトと手動の継続的統合スクリプトを使用して、アプリケーションをビルドおよびデプロイしています。私はこれらの目的のために設計されたサードパーティのシステムでこれをいくらか形式化することを検討しています。
Phingを以前に調べたことがありますが、基本的にはAntに似ていると思います。しかし、私のAntの経験は多少制限されているため、あまり役に立ちません。 (私が行ったJava作業のほとんどは、jarファイルとしてデプロイされただけです。)
以前にCruise Controlを調べましたが、phpUnderControlはCCのプラグインであることを理解しています。しかし、PhingはCCでも動作すると言います。したがって、ここでの重複については明確ではありません。 CruiseControlを使用するにはPhingとphpUnderControlの両方が必要ですか、それとも相互排他的ですか?
正確に必要なのは、次のことができるものです:
- SVNからソースをチェックアウト
- SQLファイルからデータベースをインストールする
- 一連のテンプレートとiniファイルからいくつかのローカル構成ファイルを生成します
- すべての単体テストを実行し(現在はSTですが、PHPUnitへの変換は簡単です)、テストが失敗した場合は開発チームにメールを送信します(もちろんスタックトレースを使用)
- アプリケーションのAPIドキュメントを生成し、どこかに置きます
- テストカバレッジレポートを実行する
現在、これらのほぼすべてを何らかの形で持っています。ただし、すべてを自動化し、1つのプロセスにまとめておくと便利です。
解決
phingはPHPで作成されたantであり、phpUnderControlがCruiseControlにPHPプロジェクトのサポートを追加し、バックエンドでphingまたはantを使用してbuild.xmlファイルを解析し、コマンドを実行します。
CruiseControlとphpUnderControlをセットアップしただけで、うまく機能しています。 SVNをチェックアウトし、チェックインするたびにphpDocumentor、PHP_CodeSniffer、およびPHPUnitを介して実行します。すべてbuild.xmlファイルに基づいているため、必要なソフトウェアを実行できます。
他のヒント
これを入力するまでに多くの人がこれを言うと思いますが...
PHPではないことは知っていますが、 Capistrano はこの種の仕事にすぎません。それは本当に素晴らしいソフトウェアです。
Phingを使用してきましたが、設定にかかる費用は非常に低くなっています。 ANTを知らなくても簡単に学ぶことができます。 CruiseControlで非常に悪い経験をしました(不安定-ランダムにダウンする)-Phingのシンプルさが気に入っています。さらに、PHPを使用して簡単に拡張できます(独自にサポートしていないカスタムタスクがある場合)。