php - 自我更新PHP + MySQL应用程序的最佳实践是什么?

对于桌面应用程序来说,自我更新是相当标准的做法。在Mac电脑上,每一个在我的书中使用Sparkle的非苹果程序都是一个即时胜利。对于Windows开发人员,this has already been discussed at length。我还没有找到有关自我更新Web应用程序的信息,希望您能提供帮助。
我正在构建一个像Wordpress或Drupal那样安装的Web应用程序——将它解压缩到一个目录中,点击一些安装页面,它就可以开始了。为了具有广泛的服务器兼容性,我被要求使用php和mysql——这是**mp吗?无论如何,它必须是广泛的跨平台。对于上下文,这基本上是一个针对小企业的统一Web消息应用程序。这不是另一个CMS平台,想想Webmail。
我想了解自我更新Web应用程序。首先,(1)这是个坏主意吗?从WordPress2.7开始,自动更新只是一个简单的按钮,但是我可以想象有很多方法会出错。此外,Web文件可由Web进程写入,这难道不是一个安全漏洞吗?
(2)值得开发时间吗?世界上大概有数以百万计的wp安装,所以wp团队花费大量的时间使其变得简单,从而节省了世界上数以百万计的工时。我只能想象几千次安装我的软件——构建自我升级是否值得花时间投资,或者我能假设那些足够老练的用户可以首先下载和安装Web软件,然后通过升级检查表吗?
如果这不是一场安全灾难或浪费时间,那么(3)我正在从以前做过的任何人那里寻求建议。您的数据库中有版本表吗?如何管理数据库升级?在自更新Web应用程序的上下文中,您使用什么方法回滚部分升级?使用ORM层是否使其更容易或更难?你是保持版本变化的增量,还是每次都把整个事情都搞砸了?
我很感激你对这件事的看法。


最佳答案:

坦率地说,这确实取决于你的用户群。有很多PHP应用程序不能自动升级。他们的用户要么技术上足以处理升级过程,要么就是不升级。
我的目的是两个步骤:
1)认真地问自己,你的用户可能真正需要什么。自我更新是否会为采用提供足够的推动力,以证明额外工作的合理性?如果你确信答案是肯定的,就去做吧。
既然你在问我,我想你还不知道。在这种情况下,我的目的是第2步:
2)发布1.0版,但不提供该功能。等待用户反馈。您的用户可能会立即要求一个更简单的升级过程,在这种情况下,您应该优先考虑它。或者,您可能会发现您的用户更关心一些其他特性。
在不询问用户的情况下猜测用户想要什么是在人们实际上不需要的东西上浪费大量开发时间的一个好方法。