12

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

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

所以问题是如何使用 zend 框架模块化应用程序和 git?

4

1 回答 1

2

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

* 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 回答