After upgrading my Xubuntu from 13.04 to 13.10 I am experiencing issue error with Smarty and PHP.
Basically Smarty templates are recompiled with 5-7 seconds delay after I edit template.
I compared system time (date
) with PHP's date(...)
and timestamp is equal.
PHP Version 5.5.3-1ubuntu2
How to fix it?
Example code:
require_once 'classes/Smarty-3.1.8/libs/Smarty.class.php';
$tpl = new Smarty();
// if I edit this template, changes shows up after
// 3-4 seconds which is very annoying
// there was no issue in xubuntu 13.04 / older php version!
$tpl->display('test.tpl');
Edit:
I double checked is filemtime
working properly and it is.
You can keep opcache enabled and set:
opcache.revalidate_freq=0
The problem is that by default opcache only checks timestamps after 2 seconds, and the smarty compiled templates are generated during the same request so are not checked.
Setting opcache revalidate_freq to 0 makes opcache check timestamps for all files every time, so changes made in .tpl files show instantly.
Edit: I believe this is no longer necessary as of Smarty v3.1.29