12

かなり大きなプロジェクトで zf と git を使用する際に問題が発生しています。zf アプリケーションには約 20 個のモジュールがあり、現時点ではすべてが 1 つの git リポジトリに格納されています。したがって、アプリケーションをチェックアウトするときは、モジュール、css シート、js ファイルなどのセット全体をチェックアウトします。

私がやりたいのは、wordpress や drupal のようなものです。コア アプリケーションがあり、モジュールごとに個別の git リポジトリがあり、モジュール ディレクトリにチェックアウトします。チェックアウト後、それに取り組み、コミットします。しかし zend では、メディア ファイル (css、js、画像) が /public の異なるディレクトリに保存されているため、これを行うことはできません (各モジュールには独自の css、js ファイルが /public/_MODULE_NAME_/css にある場合があります)。 )。/application/modules/ で作業しています。

質問は、zend フレームワークのモジュラー アプリケーションと git をどのように扱うかということです。

4

1 に答える 1

2

私は通常、ウェブフォルダーに1つのスーパープロジェクトを持ち、別のフォルダーからモジュールをシンボリックリンクすることで、ソフトリンクのセットアップに対処することができます。

* SuperProject/
  + application/
    + ModuleA --> ../../Modules/ModuleA/application
    + ModuleB --> ../../Modules/ModuleB/application
    + config/
    + views/
    + layouts/
  + public/
    + ModuleA --> ../../Modules/ModuleA/public
    + ModuleB --> ../../Modules/ModuleB/public
    + css/
    + js/
  + library/
+ Modules/
  * ModuleA/
    + application/
      + config/
      + views/
      + models/
    + public/
      + css/
      + js/
  * ModuleB/
    + application/
      + config/
      + views/
      + models/
    + public/
      + css/
      + js/

スター付きのディレクトリはリポジトリで、SuperProject/public は http サーバーのエントリ ポイントです (もちろんシンボリック リンク フォローが有効になっています)。明らかに、SuperProject リポジトリにモジュール ファイルを追加するのではなく、グローバル ディレクトリ (例: application/config/) のみを変更します。せいぜい、.git_ignore ファイルを介してモジュールを無視します。この方法はシンボリックリンクに依存しているため、unixoid システムでのみ機能します。完璧ではありませんが、最も手間がかかりません。

于 2012-07-26T10:32:11.267 に答える