Ответ 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-системах. Не будучи совершенным, это наименее хлопот.