Немного теоретических вопросов, ведущих к возможно более практичным. В настоящее время у меня есть веб-приложение, разработанное с использованием PHP в рамках codeigniter.
Приложение в настоящее время используется 5 отдельными клиентами, каждый со своими конкретными поправками, которые расширяют базовый / основной код, который я создал. Сейчас я нахожусь в то время, когда всякий раз, когда я делаю какие-либо обновления для версии для разработки, мне приходится тщательно кропотливо копировать каждый из отдельных файлов / каталогов каждому клиенту.
Я хотел бы немного рассказать о том, как лучше всего автоматизировать этот процесс. Сценарий состоит в том, что приложения работают на сервере Windows с php 5.4, подключающимся к базе данных mysql. Все домены / приложения, включая версию dev, находятся на одном сервере и используют один и тот же IP-адрес.
Буду ли я прав, думая, что пакетный файл будет лучшим способом сделать это, если так, может кто-то укажет мне правильное направление для создания пакетного файла. Другие мысли, которые у меня были, это, возможно, кнопка загрузки на каждом сайте, которая запускает процесс обновления, но опять же, я не совсем уверен, как это сделать.
Любой вклад с благодарностью.
Спасибо
Это действительно зависит от того, насколько обширны ваши модификации для отдельных клиентов. Является ли 90% общего кода? 50%?
Если 90% кода является общим кодом:
Я бы поместил свою базовую кодовую базу в одну папку, а затем просто использовал пользовательские файлы для изменений.
В основном коде вам нужен способ отличить клиентов. Предположим, у вас есть «клиент», который уникален для клиента.
Пример:
Допустим, мы находимся в основном коде и собираемся включить файл с именем user_admin.php но этот файл отличается для некоторых ваших клиентов, но не для всех
function custominclude($file,$clientid){
$customfile='/custom/'.$clientid.'/'.$file;
if(file_exists($customfile)){
include ($customfile);
}
else{
include ($file);
}
}
custominclude('user_admin.php',$clientid);
РЕДАКТИРОВАТЬ на основе вашего комментария ниже.
Синхронизировать две (или более) папки на сервере Windows. Используйте утилиту вроде GoodSync http://www.goodsync.com/ . Это позволяет синхронизировать папки одним или двумя способами на одном компьютере или между разными. Это должно легко справиться с вашей задачей. Вы можете настроить его, чтобы сделать это по расписанию, или вы можете вручную сказать, что вы синхронизируете, когда хотите.
Других решений пока нет …