0

私は、特定のリソースを整理してコピーするための最良の方法を考えており、最良のアプローチとなるもののいくつかの提案を探しています。

私はPHPアプリケーションを開発しており、プロジェクト(テスト、依存関係、パッケージングなど)の管理にMavenを使用しています。外部ライブラリ(コードイグナイター、PHP MVCフレームワーク)を使用しています。 github。(この場合、Webサイトからダウンロードするためにまだリリースされていない修正がいくつか含まれているため、githubバージョンに興味があります。)

アプリケーションをコンパイル/パッケージ化するたびに、githubからコピーを取得したいと思います(またはローカルにキャッシュされたバージョンを使用しました)。私はこれについてグーグルをしました、それはそれほど単純ではないようです。個人のMavenリポジトリにコードイグナイター用のMavenアーティファクトを作成し、それを依存関係として追加することを検討しています。これはそうだったのですが、これが最善のアプローチかどうか疑問に思い始めました。

プロジェクトに関するその他の情報:

  • webrootはsrc/main /webapp/にあります
  • Webrootの場所を、Mavenでの作業に慣れていない開発者にとってより単純な場所に変更することを決定するかもしれませんが、Mavenディレクトリ構造について開発者を学ぶことは許容されます。
  • カスタム開発されたPHPファイルをCodeIgniterファイルから分離したいと思います(そしてテストを実行する前にそれらをオーバーレイします)。

この場合の良いMavenソリューションは何ですか?

4

1 に答える 1

0

まず第一に、主な目標は何かを自問する必要があります。PHP 自体は war ファイルについて何も認識していません。また、(正式に使用されている) apache httpd もそれについて何も認識していません。PHP は PHAR ファイルを優先します。php-maven を使用しましたか、それとも独自の方法で解決しようとしましたか? php-maven で作業を共有する必要があるかもしれません。https://groups.google.com/forum/?fromgroups#!forum/maven-for-phpで Google グループを参照してください。

Maven の規約に反抗しようとしないでください。したがって、実際にはこれは Maven プロジェクトであり、ソースは src/main/webapp または src/main/php または src/main/resources に配置する必要があります (おそらくご存知のとおり)。PHP 開発者を共通の Maven ファイル構造に導くことは難しくありません。PHP プロジェクトはあまり直感的ではないため (ほとんどのフレームワークには独自のパッケージとファイル レイアウトがあります)、PHP 開発者は「すべてのソースは src/main/php に移動する」ことを学習しても問題ありません。

だからあなたの質問をするために:

1)コードイグナイターについて説明していることは、実際にはスナップショットを説明しています。Maven はスナップショットを非常にうまく処理します。したがって、残っている唯一の質問は、それらを自動的にインポートする方法です。PHP-Maven にはすでに、pear プロジェクトのインポーター、いくつかの Web ダウンロード、さらには github ダウンロードがあります。このインポーターは、github からスナップショット ビルドを簡単にダウンロードできると思います。新しいバージョンについての通知方法 (またはそれらを探す間隔) だけが問題です。

2) 依存関係管理は、php インクルード パスに依存関係を追加するか、特定のフォルダー (またはユーザー定義フォルダー) に抽出することによって、PHP-Maven で解決されます。十分に柔軟でなければなりません。

3) コードイグナイター自体がわかりません。探しているソリューションは、コード イグナイターが zend フレームワーク (一般的なディレクトリ構造を簡単に学習できる単純なライブラリ) と同様に動作するか、または flow3 のように動作するか (独自のカスタム ディレクトリ構造でのみ動作) によって異なります。そのため、コード イグナイターが非常に異なるフォルダー (php-maven の target/php-deps など) にあり、イグナイター webapp が target/classes にあることが許容される場合は、コード イグナイター ファイルからカスタム ファイルを常に分割する必要があります。

于 2012-08-08T10:24:27.770 に答える