检测PHP web应用程序中已安装版本的最佳方法

检测PHP web应用程序中已安装版本的最佳方法,php,version-control,version,updating,Php,Version Control,Version,Updating,我们有一个定制的PHP/MySQL web应用程序,可以定期更新并复制(使用SFTP)到多个服务器 对于其中一些更新,需要更改数据库或文件系统。通常,这需要手动运行update.php脚本来检查和更新所有内容 我希望能够让应用程序检查是否有新的更新以减少手动活动 最好的方法是什么?您可以尝试将当前应用程序的版本存储在某个地方(示例XML文件) 将远程服务器中应用程序的最新版本转换为XML文件,然后唯一要做的就是运行cron作业,比如每4天或每周执行一次php脚本,该脚本将当前版本与从远程服务器获

我们有一个定制的PHP/MySQL web应用程序,可以定期更新并复制(使用SFTP)到多个服务器

对于其中一些更新,需要更改数据库或文件系统。通常,这需要手动运行update.php脚本来检查和更新所有内容

我希望能够让应用程序检查是否有新的更新以减少手动活动


最好的方法是什么?

您可以尝试将当前应用程序的版本存储在某个地方(示例XML文件) 将远程服务器中应用程序的最新版本转换为XML文件,然后唯一要做的就是运行cron作业,比如每4天或每周执行一次php脚本,该脚本将当前版本与从远程服务器获取的具有最新版本值的XML文件进行比较,它应通过电子邮件通知您,或应用程序中的消息。 可以存储在XML文件中的其他信息包括此更新的重要性,或有关更新的信息


希望有帮助

你可能想得太多了

在文件中记录最新版本,在上载的脚本中记录当前版本

您可以根据需要为版本解析添加尽可能多的复杂性

最简单的例子:

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');
}

我喜欢第二个想法;它很简单,性能开销也很小。Thnx@Martijn:确保您在update.php中跟踪了当前/最新版本,然后,如果由于某种原因没有删除更新,您就不想尝试应用更新两次(例如权限出错)