在一个相当大的项目中,我正在使用zf和git处理一些问题. zf应用程序有大约20个模块,而且一切都存储在一个git仓库中.因此,当您检出应用程序时,您将检查整个模块,css表,js文件等.
我想做的是像wordpress或drupal这样的:你有你的核心应用程序,每个模块都有一个单独的git仓库,你在modules目录中检出.结帐后,你就可以工作,然后你承诺.但是使用zend你不能这样做,因为媒体文件(css,js,图像)以/ public的方式存储在不同的目录(每个模块可能拥有自己的css,js文件在/ public / _MODULE_NAME_ / css中) ).我正在/ application / modules /中工作.
那么问题是你如何使用zend框架模块化应用程序和git?
我通常设法应对软链接的设置,在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系统.虽然不是完美的,但这是最不方便的.