Skip to content

\$caching {#variable.caching}

This tells Smarty whether or not to cache the output of the templates to the $cache_dir. By default this is set to the constant \Smarty\Smarty::CACHING_OFF. If your templates consistently generate the same content, it is advisable to turn on $caching, as this may result in significant performance gains.

You can also have multiple caches for the same template.

  • A constant value of \Smarty\Smarty::CACHING_LIFETIME_CURRENT or \Smarty\Smarty ::CACHING_LIFETIME_SAVED enables caching.

  • A value of \Smarty\Smarty::CACHING_LIFETIME_CURRENT tells Smarty to use the current $cache_lifetime variable to determine if the cache has expired.

  • A value of \Smarty\Smarty::CACHING_LIFETIME_SAVED tells Smarty to use the $cache_lifetime value at the time the cache was generated. This way you can set the $cache_lifetime just before fetching the template to have granular control over when that particular cache expires. See also isCached().

  • If $compile_check is enabled, the cached content will be regenerated if any of the templates or config files that are part of this cache are changed.

  • If $force_compile is enabled, the cached content will always be regenerated.

See also $cache_dir, $cache_lifetime, $cache_modified_check, is_cached() and the caching section.