html编码器保存smarty模板时网站崩溃(PHP致命错误)
我们正在运行一个相当大的网站(每天约40万页面浏览量),并使用Smarty作为模板引擎。HTML编码器每天都会更改模板,每次模板更改(几乎每次)都会导致网站崩溃,因为html编码器保存smarty模板时网站崩溃(PHP致命错误),php,smarty,Php,Smarty,我们正在运行一个相当大的网站(每天约40万页面浏览量),并使用Smarty作为模板引擎。HTML编码器每天都会更改模板,每次模板更改(几乎每次)都会导致网站崩溃,因为PHP致命错误:调用未定义函数\u smarty\u tplfunc\u f0cb5c08ca1726d24308f6bd56b4f\u 0()。PS:是的,我们正在使用$smarty->compile\u check立即查看模板更改 为了修复此错误,我们正在清理所有网站缓存。我觉得不舒服 谁知道,我该怎么修呢?以及为什么每次(几乎
PHP致命错误:调用未定义函数\u smarty\u tplfunc\u f0cb5c08ca1726d24308f6bd56b4f\u 0()。
PS:是的,我们正在使用$smarty->compile\u check
立即查看模板更改
为了修复此错误,我们正在清理所有网站缓存。我觉得不舒服
谁知道,我该怎么修呢?以及为什么每次(几乎每次)更改模板时都会发生此错误
谢谢。避免此类问题的最佳方法是上载到临时文件,然后重命名它。这样就不可能出现部分文件 至于为什么每次都会发生,想想看。每天400k页面浏览量==平均每秒4.6个请求。考虑到我所见过的大多数网站在特定时间(白天)的流量要大得多,我怀疑你每秒会看到10到20个请求。按照这种速度,如果文件写入(由于上传)所需时间超过0.05秒,则在写入时读取文件的几率会急剧上升 因此,您的选择(从最稳健到最稳健的顺序。您始终可以执行多项操作):
filemtime()
确定上次修改的时间。确保先调用clearstatcache()
,这样就不会得到旧时间)一旦缓存重新生成,它是否正常?是的,完全正确!当缓存被重新分配时,一切都正常。在我看来,出现此错误是因为模板尚未100%上载到ftp,但Smarty已经认为该文件已被修改。您好,感谢您的建议。我明天就试试。我特别喜欢修改Smarty代码的想法。我刚刚尝试使用
touch template.tpl
而不是清理缓存-效果很好,所以我认为重命名会有帮助(稍后会检查)