我们正在运行相当大的网站(每天约400K页面浏览量)并使用Smarty作为模板引擎。 HTML编码器每天都会更改模板,每次模板更改(几乎每次更改)都会导致网站崩溃,因为PHP Fatal error: Call to undefined function _smarty_tplfunc_f0cb5c08ca1726d224308f2f6bd56b4f_0() in ...
PS:是的,我们正在使用$smarty->compile_check
来立即查看模板更改。
要解决此错误,我们会清除所有网站缓存。我觉得不舒服!
谁知道,我该如何解决?以及为什么每次(几乎每次)模板更改时都会出现此错误。
谢谢。
答案 0 :(得分:0)
避免此类问题的最佳方法是上传到临时文件,然后重命名。这样就不会出现部分文件。
至于为什么每次都会发生这种情况,请考虑一下。每天400k页面浏览量==每秒平均4.6次请求。考虑到我见过的大多数网站在特定时间(白天)的流量都要大得多,我怀疑你每秒钟会看到10到20个请求。如果文件写入(因为上传)花费的时间超过0.05秒,那么在写入时读取的可能性会急剧上升。
所以你的选择(从最强大到最少的顺序。你可以做多次):
filemtime()
以确定上次修改时间。请务必先致电clearstatcache()
以免不会过得很开心......