2009-03-08 6 views
19

は、ツール(Phing)と継続的インテグレーション(Xinc)を構築、November 2008 edition of php|architect magazineた 議論ユニットテスト(phpUnit)に「現代PHPワークフロー」の記事を読んだ後、私はPHPのために利用できるツールのいくつかについての詳細はこちらを触発しています特に、Phing。PHPビルド/統合ツール:それらを使用していますか?

私はしばしば、ライブサイトをサブバージョンの作業コピーとして実行し、単に最新のバージョンのコードを展開するためにプロダクションボックスで "svn update"を実行することによって、運用サーバーに配備を処理しました。

PHPコード用のビルドツールを使用していますか? Subversionから直接導入するよりも、あなたが信じている利点は何ですか?私は何を見なければならないのですか?

+1

PHPへのリンクを維持しつつ、それ以外の場合はPHPおよび/またはBASHを使用して軽量なソリューションを作成することは、すべてをカバーしなければならない|建築家の雑誌は、私が10ヶ月前に質問を投稿するので、それは変更のよう – AntonioCS

+0

@AntonioCSに見える:(機能していません...今固定 –

+0

LittleBobbyTables、マイケルBerkowski、ロブ、CL、ライナスKleenが@:。。 –

答えて

7

私はPhingとAntの両方を使用しており、後者ははるかに優れています。 PHPで書かれているので、最初はPhingに行っていましたが、正直言ってAntのように成熟していません。結局、大規模なコミュニティを持つ成熟したビルドシステムを持つことはもっと価値があります。

のAnt/Phingので物事:

  1. ベースのチェックアウトloalizeから特定の言語には、あなたがそれらを持っている場合、依存関係が(など他のLIBSに、ディレクトリ、)
  2. であることを確認、テンプレートをコンパイルし、など
  3. 実行ユニットテスト、チェックアウト、コードのバージョンに応じて、必要なバージョンまでのターゲット・データベースを持参
  4. など
+0

phing.antはデータベース移行をネイティブに処理するのですか、または外部ツールと統合しますか? –

+0

通常、外部ツールです。 (実際には「マイグレーション」の意味に依存します)。 – Jilles

2

私はそれを見て、かなり素晴らしいと思う。私が作業しているプロジェクトでは、実際にApache's Antを使用しています。 (例えばconfig.phpをするconfig.php.productionの名前を変更

  1. 生産の設定ファイルで、標準の設定ファイルを交換結合し、圧縮JavascriptとCSS(圧縮がYUI Compressor
  2. を使用して行わ:私はいくつかのことを行うためにそれを使用します)
  3. 不必要なAntビルドファイルなどのファイル(build.xmlの)

を削除し、私はそれがいいかもしれないネイティブPHP、だからPhingのはアリオーバーを見て価値があると思います。あなたがいる場合にもファイルをコピー/移動する以外に何もしないでください。運用環境に移行する際のパフォーマンスの問題。私はYUIコンプレッサーが私のローカルマシン上でうまく走っていた問題を抱えていましたが、比較的小さなVPSではそれは非常に遅かったです。

+0

は、私は「PHPで実装さ」だと思う?? + 17件の投票8Kビュー建設的ではない引数は少し過大評価されそれは我々が選択した正確な理由でした。 Phingは3年後にPhingのコアを変更したことはありませんでした。一方、Antは、より成熟した/より大きなコミュニティであり、必要に応じてPHPスクリプトとうまく統合します。 – Jilles

+3

それは重要であり、変更可能ではない依存関係です。私たちはJaのすべてをインストールする必要はありません私たちがJavaを他の場所で使用していないときのもの。 – ssokolow

2

私が今作業しているプロジェクトでは、テストを実行して何かが壊れたときに速報を得るためにphpUnderControlを使用しています。 Watirに書かれているような他のテストも実行する予定です。

7

私がPhingに見ている大きな問題は、間接指示の不要なレイヤーを作成することです。 PHPはスクリプト言語なので、直接実行することができます。 PhingのXML構成の使用は、言語の適合性に欠けます。これは、より読みやすい宣言的な構成を提供しますが、言語の柔軟性を犠牲にしています。 Ant(そのルートのインスピレーション)は、動的ではなくコンパイルが必要なため、Javaに柔軟性がないので理にかなっています。

残念ながら、私はPHP空間で多くの良い選択肢を見ていませんし、他の言語とは異なり、ビルドツールは必須ではなく、文化の一部でもありません。

したがって、PHP の可能性のあるオプションに従うことをお勧めします。はビルドツールをより積極的にサポートするカルチャーからのものです。私は通常Gradleを使用します。 Rakeは、あなたがチートしたい言語に応じて素晴らしい仕事をします(そして他の同様のオプションがあるかもしれません)。あなたは、もしあなたがそのタイプのものに入っているなら、Webdriverのサポートのようなものを測るべきです。透明

関連する問題