Ссылка на внешний каталог в Symfony

Ситуация

У меня есть базовое приложение Symfony, которое можно сравнить с абстрактным классом.
У меня есть несколько клиентских приложений Symfony, основанных на базе app.
Клиентские приложения — это простые веб-сайты, каждый из которых содержит разные (доступные только для чтения) данные, темы и т. д.

Приложение Base – НЕ работает как автономное

  • Файлы .htaccess, AppKernel, config.yml и т. д.
  • несколько пакетов поставщиков
  • Базовый пакет с некоторыми базовыми представлениями
  • отсутствует контроллер
  • отсутствует маршрутизация
  • не хватает ресурсов для конкретных клиентов

Клиент – содержит элементы, отсутствующие в приложении Base.

  • "внедрено" в приложение Base
  • Контроллер(ы)
  • маршрутизация
  • специфические для клиента ресурсы (представления, css, js, данные и т. д.)

Использование git, и он предпочел бы создать репозиторий git из кода Base, при этом каждый репозиторий Customer ссылается на Base репозиторий как подмодуль.
Это сохраняет код Base в одном репозитории и поддерживает четкое разделение между репозиториями Customer.

root\ - (Customer repo)
    Customer\ - (Customer-specific files)
    Symfony\ - (Base app submodule repo)
       app\
       src\
          MyCompany\
             BaseBundle\
       vendor\
       web\

Точка преткновения

Не удалось заставить Symfony распознать папку Customer\ и любое ее содержимое.

Характеристики

  • Симфония 2.3
  • Гит
  • Апач 2.4.4
  • PhpStorm
  • виндовс 7 х64

Неудачные попытки

  • добавление пакета Customer в AppKernel.php registerBundles
  • регистрация папки Customer\ в autoload.php

person Jake Berger    schedule 01.09.2013    source источник


Ответы (1)


Создайте символическую ссылку Junction, используя внешний каталог Customer\ в качестве источника и место назначения внутри каталога MyCompany\.

В репозитории Symfony (подмодуль) .gitignore добавьте customer/, чтобы игнорировать символическую ссылку соединения.

root\ - (Customer repo)
    Customer\ - (symlink source)
    Symfony\  - (git submodule)
       app\
       src\
          MyCompany\
             BaseBundle\
             Customer\ - (Junction symlink)
       vendor\
       web\

Полное руководство по символическим ссылкам (симлинкам) на Windows или Linux

person Jake Berger    schedule 01.09.2013