Лучший способ синхронизации основных файлов в нескольких проектах PHP? - PullRequest
2 голосов
/ 14 февраля 2012
  • У меня есть платформа PHP, которую я построил.
  • Я использую копию этого проекта для каждого проекта, который я делаю.
  • Я добавляю ресурсы и настраиваю каждый проект сэто собственный контент.
  • Конфигурирование проекта изменяет некоторые основные файлы, которые содержат настройки по умолчанию.

Когда я обновляю основные файлы в самой библиотеке / платформе и хочу распространятьэти изменения во всех других проектах, использующих эту платформу, какой будет наилучший подход?

Я думаю, что стоит отметить, что у меня каждый проект SVN в Eclipse.

ОБНОВЛЕННЫЕ ДЕТАЛИ:

  • Платформа основана на AMFPHP 1.9.
  • В AMFPHP есть папка служб.
  • Я также должен поместить основные службы в папку службкак конкретные сервисы реализации и, следовательно, не могут достичь полного разделения между «библиотекой» и «приложением».
  • Кроме того, файлы конфигурации по умолчанию должны находиться на «платформе»папку, чтобы их можно было легко распространять вместе с ней, но при изменении конфигурации эти файлы также становятся «специфичными для реализации».

Существует ли решение, которое позволит мне назначать определенные файлы для обновления?

Ответы [ 3 ]

3 голосов
/ 14 февраля 2012

Взгляните на использование svn: externals.Сконфигурируйте каждый вторичный проект со своими основными библиотеками как с внешними.

2 голосов
/ 14 февраля 2012

Отличный вопрос, вот как я решил эту проблему с помощью своего собственного PHP-фреймворка.

Если у вас есть все специфичные для проекта и основные файлы, смешанные вместе, и код платформы вкраплен в код вашего проекта, будет очень сложно обновить основной код для всех ваших проектов.

Лучший способ обойти это - упростить для svn (или git, или любого другого программного обеспечения управления версиями) обновление ваших файлов: если они все аккуратно организованы, файлы проекта и ядра находятся на своих местах. Позвольте мне привести пример, чтобы уточнить.

Поместите все основные файлы вашей платформы в этот каталог:

/App/FrameworkName

Здесь вы можете разместить основные классы, функции и другой код, который не изменится для всех ваших различных проектов.

Затем любой связанный с проектом контент, настройки или страницы входят в:

/App/Project

Здесь у вас есть все данные, которые используются вашими проектами.

В этой системе, если вы добавляете функцию на свою платформу, все, что вам нужно сделать, это svn последняя версия вашей платформы для /App/FrameworkName, и ваш проект будет использовать обновленный код.

0 голосов
/ 14 февраля 2012

Мои программы обычно состоят из двух частей.папка базового фреймворка и фреймворк addon folder.my (в доме) выполняют всю начальную работу, а затем загружают аддон для дополнительной функциональности.

Например, фреймворк обрабатывает все аутентификации пользователя, аддон предоставляетдополнительные функции crud для каждого проекта.

Таким образом, я могу хранить их в отдельном хранилище.и рамки могут быть проверены и использованы для других проектов.

...