2012-05-21 5 views
0

У меня есть ряд проектов в Eclipse PDT, которые являются всеми веб-сайтами. Все эти веб-сайты используют систему управления контентом, которую я разработал. Я переместил код для CMS в отдельный проект, готовый к совместному использованию.Какова наилучшая практика для обмена кодами между проектами в Eclipse PDT, сохраняя при этом тестовую способность с помощью веб-сервера?

До сих пор у меня есть проект/файловая структура, подобная этой:

CMS [CMS master] 
    -CMSlib 
Website1 
    -scripts 
    -CMSlib 
Website2 
    -scripts 
    -CMSlib 

Папка CMS\CMSlib содержит общий код и сам проект CMS связан с локальным репозиторием Git и представляет собой последнюю версию. Я не уверен, как мне поделиться этим кодом между проектами. Если я хочу поделиться этим кодом, я должен уметь сохранить следующие функции рабочего процесса:

  • Я должен быть в состоянии проверить веб-сайты на веб-сервере. У меня есть WAMP , установленный для этой цели. Добавление проекта CMS к каждому проекту веб-сайта включает путь в Eclipse, не подходит, поскольку веб-сервер не знает eclipse. Поэтому мне нужно, чтобы файлы присутствовали локально (в идеале в пределах папка scripts\CMSlib в рамках каждого проекта веб-сайта).
  • Код для CMS должен быть легко обновлен для всех веб-сайтов. Поэтому, если я добавлю к проекту CMS, должно быть легко обновить код CMS для каждого проекта сайта .

Так какова наилучшая практика, когда эти требования необходимы? Есть ли способ вытащить файлы из репозитория в другие проекты с помощью EGit (кстати, я начинаю Git)? Или я пропустил некоторые другие настройки, которые позволяют это сделать, используя путь включения?

Примечание: Копирование и вставка CMS\CMSlib в scripts папку веб-сайт проекта придумывает поле опции заставляет меня пропустить работу, если папка scripts\CMSlib уже существует.

ответ

1

Поскольку вы используете Git, вы можете использовать функцию «Submodule»: http://git-scm.com/book/en/Git-Tools-Submodules.

С функцией Submodule вы можете хранить все свои веб-сайты в рамках одного каталога проекта; однако, если вы хотите, чтобы каждый веб-сайт использовал разные версии общего кода (который втягивается в качестве подмодуля), вам просто нужно подмодулировать общий проект на каждый веб-сайт по отдельности.

Вы также можете сделать это без подмодулей. Вы можете просто «потребовать» (или автозагрузить) общий код с каждого веб-сайта. Каждая среда IDE, которую я когда-либо видел, позволяет вам загружать дополнительные библиотеки или пакеты. Я не использую PDT; однако, я уверен, что он есть.

РЕДАКТИРОВАТЬ: На самом деле, быстрый продукт google: "Configuring a Project's PHP Include Path".

+0

Правильно ли я полагаю, что для использования этой функции мне пришлось бы управлять версиями каждого проекта веб-сайта, а затем добавлять подмодуль внутри каждого из них, который ссылается на репозиторий CMS? Если это так, единственная проблема заключается в том, что было бы предпочтительнее не иметь контроль над версиями каждого веб-сайта. Будет ли это означать, что каждый раз, когда изменения происходят в проекте CMS, он автоматически обновляет все подмодули, связанные с ним? – Jonathan

+0

Я ответил на ваши вопросы с помощью обновления ответа. –

+0

Я уже обращался к вопросу о включении пути в первый пункт в моем вопросе.Проблема, просто требующая кода, заключается в том, что каждый проект веб-сайта представляет собой общедоступный каталог хостинга public_html/www. Поэтому код должен быть где-то внутри этого каталога, который будет проверяться локально (и точно) с помощью WAMP и ftp'd. Я думаю, что немного проверю функцию подмодулей. В противном случае я пересмотрю структуру проекта. – Jonathan