【问题标题】:Best way to detect installed version in a PHP web application在 PHP Web 应用程序中检测已安装版本的最佳方法
【发布时间】:2012-06-26 10:23:48
【问题描述】:

我们有一个自定义的 PHP/MySQL Web 应用程序,它会定期更新和复制(使用 SFTP)到多个服务器。

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

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

最好的方法是什么?

【问题讨论】:

    标签: php version-control version updating


    【解决方案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');
    }
    

    【讨论】:

    • 我喜欢第二个想法;它很简单,性能开销很小。谢谢。
    • @Martijn:请确保您确实在 update.php 中跟踪当前/最新版本,如果由于某种原因没有被删除,您将不想尝试两次应用更新(权限 cock-up 例如)
    【解决方案2】:

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

    希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-13
      • 1970-01-01
      • 1970-01-01
      • 2011-08-06
      • 2012-06-25
      • 2010-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多