2012-06-26 4 views
0

У нас есть настраиваемое веб-приложение PHP/MySQL, которое регулярно обновляется и копируется (с использованием SFTP) на несколько серверов.Лучший способ обнаружить установленную версию в веб-приложении PHP

Для некоторых из этих обновлений необходимы изменения базы данных или файловой системы. Обычно для этого требуется вручную запустить скрипт update.php, который проверяет и обновляет все.

Я хотел бы иметь возможность проверить, есть ли новые обновления для уменьшения ручного действия.

Что было бы лучшим способом сделать это?

ответ

1

Возможно, вы думаете об этом?

Запишите последнюю версию в файл, запишите текущую версию в загружаемом скрипте.

Вы можете добавить столько сложностей, сколько хотите для синтаксического анализа версии.

Простейшее возможный пример:

define('CURRENT_VERSION', 2); 

$lastVersion = (int)file_get_contents('VERSION'); 

if (CURRENT_VERSION > $lastVersion) { 
    if (update()) { 
     file_put_contents('VERSION', CURRENT_VERSION); 
    } 
} 

Вы также можете обнаружить наличие обновления тем, что update.php существует. Если он есть, запустите его и удалите. Очевидно, добавьте свою собственную проверку ошибок и резервное копирование, если обновление не удастся.

if (file_exists('update.php')) { 
    require('update.php'); 
    unlink('update.php'); 
} 
+0

Мне нравится вторая идея; это просто и имеет небольшие накладные расходы. Thnx. – Martijn

+0

@Martijn: убедитесь, что вы отслеживаете текущую/последнюю версию внутри update.php, тогда вы не захотите попробовать и применить обновление дважды, если по какой-либо причине оно не будет удалено (например, при разрешении разрешений) – Leigh

0

вы можете попытаться сохранить где-то версию текущего приложения (пример файла XML) и последнюю версию приложения на удаленном сервере в файл XML, тогда единственное, что нужно сделать, - запустить задание cron один раз каждые 4 дня или один раз в неделю для выполнения php-скрипта, который выполняет сравнение текущей версии и XML-файла, полученного с удаленного сервера с последним значением версии, он должен информировать вас по электронной почте или сообщение в приложении. Дополнительная информация, которую вы можете сохранить в файлах XML, насколько важны эти обновления или информация об обновлениях.

надеюсь, что это помогло!