正确覆盖文件

时间:2016-05-22 20:19:59

标签: php

我正在尝试在用PHP编写的频繁使用的网页上管理缓存。我已经标记了PHP代码的一些可缓存部分,当管理员在CMS中进行更改时,我只想执行预缓存。为此,我使用这种方法:

我有一些PHP代码标记的文件(例如“index-source.php”),它们可以单独解释。当管理员更改某些设置时,将执行这些标记的部分并替换为结果(例如,从DB中读取菜单项的MySQL查询将替换为生成的HTML菜单)。结果文件保存为新的“index.php”,它仍然有一些PHP代码,无法通过缓存进行优化。

现在问题 如果我们假设这个服务器负载很重,这意味着每秒有100个请求,这在PHP中需要文件index.php。如果我将使用file_put_contents()用新的预缓存版本覆盖此index.php,是否有任何风险,因为锁定/未完全覆盖文件会导致某些请求被中断?基本上我想以某种方式更新我的PHP文件,并确保PHP将包含该文件的完整旧版本或完整新版本,或等待几毫秒直到文件被覆盖。我希望PHP失败需要或加载部分覆盖的文件。

这可能吗?感谢

1 个答案:

答案 0 :(得分:0)

file_put_contents不是你想要的。

看看这个项目,深入了解资料来源,了解您可能面临的挑战以及所选择的解决方案。

https://github.com/PHPSocialNetwork/phpfastcache