8

サブモジュールで git を使用していますが、ファイルを整理する方法を理解するのに苦労しています。私は PHP で開発し、単体テストを使用しています。そのため、現在、各モジュールに次の構成を使用しています。

  • ソース/
  • テスト/

これは素晴らしいアイデアのように思えますが、問題は、プロジェクトに "git submodule add" を実行すると、次のパスが作成されることです: project/modules/News/src/index.php

src/ フォルダーは本当に問題があります。

すべてのファイルをモジュールルートに配置し、ソースに tests/ フォルダーを混在させる必要がありますか? 私にはそれは悪いように聞こえます。何してるの ?

編集: src/ フォルダーは、自動ロードのために問題があります。すべてのクラス名に「src」を入れる必要はありません...

4

3 に答える 3

4

オートローダーが何らかの方法でファイルを見つけることができる限り、フォルダーのレイアウトはほとんど関係ありません。クラス名をソース ファイルにマッピングするために PEAR 規則を使用している場合は、src ディレクトリをインクルード パスに追加するか、2 番目のオートローダーをスタックすることができます。次に、クラス名に src を追加する必要はありません。

PEAR 規約に代わるものは、ファイルとクラスの間の静的マッピングを使用することです。このようなオートローダーを自動的に生成できるツールが GitHub にあります

スタティック オートローダー アプローチは、PHP Project Wizardでも使用されます。このツールは、プロジェクトを Jenkins CI に接続するためのphpunit 構成とビルド ファイルを含む src および tests フォルダーを作成します。便利なパッケージです。

サブモジュールを含める場合は、lib または ext フォルダーに配置することを検討してください。その外観の例は、GitHub の phpdox プロジェクトにありますメインのブートストラップ ファイルも確認して、さまざまなオートローダーを組み込む方法を確認してください。

于 2011-03-29T07:09:18.770 に答える
3

この問題に直面したときに私がしたことは、vendors というフォルダーを作成し、すべてのサブモジュールをそこに配置することでした。次に、相対パスを使用して、ディレクトリをコードで必要な場所にシンボリックリンクしました。シンボリック リンクを git にコミットすると、他の人がリポジトリをプルしても機能します。もちろん、これは *nix ベースの OS を使用している場合にのみ機能します。

例えば:

modules/
vendor/module1/src/

次のようにシンボリック リンクできます (modules ディレクトリから):

ln -s ../vendor/module1/src module1

これで問題が解決するかどうかはわかりません。

于 2011-03-28T16:01:29.460 に答える
0

別のモジュールにテストはありません。同じリポジトリに保管してください。

于 2011-03-29T05:43:52.423 に答える