在大型项目中使用zend框架和git

Ale*_*anu 12 git zend-framework modular

我在一个非常大的项目中使用zf和git时遇到了一些问题.zf应用程序有大约20个模块,目前所有内容都存储在一个git存储库中.因此,当您签出应用程序时,您会检出整个模块集,css表,js文件等.

我想做的是像wordpress或drupal:你有你的核心应用程序,每个模块你有一个单独的git存储库,你可以在modules目录中签出.结帐后,您可以使用它,然后提交它.但是使用zend你不能这样做,因为媒体文件(css,js,images)以/ public中的不同目录存储(每个模块可能有自己的css,例如/ public/_MODULE_NAME_/css中的js文件) ).我在/ application/modules /工作.

那么问题是你如何使用zend框架模块化应用程序和git?

Lar*_*ars 2

我通常设法处理软链接的设置,在网络文件夹中有一个超级项目,并从以下位置的不同文件夹中符号链接模块:

* 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/
Run Code Online (Sandbox Code Playgroud)

带星号的目录是存储库,SuperProject/public 是 http 服务器的入口点(当然要启用符号链接)。显然,您没有在 SuperProject 存储库中添加任何模块文件,而只是在全局目录(例如 application/config/)中进行更改 - 充其量,您可以通过 .git_ignore 文件忽略模块。由于此方法依赖于符号链接,因此它仅适用于 unixoid 系统。虽然不完美,但这是最少的麻烦。