PHP:写入当前文件

时间:2013-01-11 01:27:04

标签: php file version-control checksum repository

我目前正在开发一个网络应用更新系统。它的工作方式类似于主服务器是repo的版本控制。我的系统和vc之间的区别在于你无法提交/推送等到主服务器。

所以这个想法是:

用户转到管理员>更新

检查更新

主仓库发回所有最新版本文件及其校验和的列表

应用程序会根据服务器上的文件检查此列表。如果某些已过期/不匹配校验和,则请求这些文件内容,然后重写服务器上的文件。

我的问题是,如果更新文件本身需要更新怎么办...我将如何更新它?即使它当前被执行,我能否覆盖它吗?或者会出现错误,整个事情会爆发吗?我猜想当前文件存储在ram中,所以它可以覆盖自己,但我不确定。

由于

1 个答案:

答案 0 :(得分:0)

这是你可以采取的一种方式:

  • 仅允许通过'superadmin'页面更新主文件
  • 创建一个'注册表',程序的任何部分都可以访问它(有些只是阅读,有些只是写)
  • 当通过superadmin更新文件时,它会检查注册表是否正在读取文件
  • 当superadmin更新任何文件时,它会设置'注册表',说明正在更新给定文件(实际上是锁定它)
  • 当用户尝试更新系统时,它会检查注册表,如果文件设置为“已锁定”,则不会尝试下载
  • 当用户能够下载它时,它会设置注册表说正在读取文件(并在完成后将其关闭)