Recipe code formatting fix. New recipe for improved APC bytecode support

This commit is contained in:
Andreas Runfalk
2011-06-22 11:03:56 +02:00
parent 027f4890a7
commit eb5c9fbcc7
+27 -7
View File
@@ -246,14 +246,34 @@ Validating the Template Syntax
When template code is providing by a third-party (through a web interface for When template code is providing by a third-party (through a web interface for
instance), it might be interesting to validate the template syntax before instance), it might be interesting to validate the template syntax before
saving it. If the template code is stored in a `$template` variable, here is saving it. If the template code is stored in a `$template` variable, here is
how you can do it: how you can do it::
try { try {
$twig->parse($twig->tokenize($template)); $twig->parse($twig->tokenize($template));
// the $template is valid
} catch (Twig_Error_Syntax $e) {
// $template contains one or more syntax errors
}
// the $template is valid Refreshing modified templates when APC is switched on with apc.stat = 0
} catch (Twig_Error_Syntax $e) { -----------------------------------------------------------------------
// $template contains one or more syntax errors
} When using APC to cache, apc.stat is 0 and PHP caching of templates is enabled
the result won't show until cache is cleared. To get around this one can extend
Twig_Environment and force update cache when Twig rewrites the cache::
/**
* Modified Twig Environment for APC bytecode cache support
*/
class Twig_Environment_APC extends Twig_Environment
{
protected function writeCacheFile($file, $content) {
parent::writeCacheFile($file, $content);
// Compile cached file into bytecode cache
apc_compile_file($file);
}
}
.. _callback: http://www.php.net/manual/en/function.is-callable.php .. _callback: http://www.php.net/manual/en/function.is-callable.php