Ведение вариантов приложения - PullRequest
0 голосов
/ 12 ноября 2010

У нас есть продукт, который слегка настраивается для каждого клиента.Точная настройка непредсказуема - мы предполагаем, что любая точка в коде может нуждаться в изменении.Однако мы хотим сохранить одну кодовую базу, поскольку 90 +% кода будут идентичны, поэтому нам не нужно объединять каждое обновление или новую функцию с каждым клиентом отдельно.

Как это можно сделать?

Проект написан на PHP с фреймворком Yii.

По сути, мы хотели бы что-то вроде этого: у каждого клиента будет папка с «зеркалом» кода.Это «зеркало» будет включать только те классы, которые настроены для клиента.Чем во время выполнения будет известна идентификация клиентов, и каждое упоминание имени класса будет разрешено в общую версию класса - если для этого клиента не существует специфической для клиента версии или в настроенную для клиента версию этого класса - еслитакая версия существует.

Буду признателен за комментарии по поводу общего вопроса проектирования.
Любые комментарии по поводу вышеупомянутого решения.
Существуют ли другие способы достижения того, чего я хочу достичь?
Может быть, какой-нибудь инструмент для генерации кодадля генерации конкретной версии клиента из текущего основного кода?

А также есть вопрос реализации.Как это можно реализовать в PHP и Yii?

Сначала я подумал об использовании PHP __autoload.Тем не менее, он в любом случае выберет только одну версию класса.И это проблема, потому что нам нужно будет выбирать клиентскую версию каждый раз, кроме одной: при определении клиентской версии класса мы будем расширять универсальную версию этого класса.Таким образом, версия классов не может быть разрешена во время загрузки, обе должны быть загружены, и клиент будет использоваться каждый раз, кроме одного.

Спасибо

1 Ответ

1 голос
/ 12 ноября 2010

думаю svn, cvs, git, все эти системы управления версиями помогают вам ветвиться, транк, тег для вашего кода для проектов каждого клиента

...