TWIG EXTENSION ESCAPE
在使用Symfony有时候会遇到一些状况需要自己去客製化twig的Escape
以下是一个twig escape的範例:
<?phpnamespace AppBundle\Twig;class EscapeExtension extends \Twig_Extension implements Twig_Extension_InitRuntimeInterface{ public function initRuntime(\Twig_Environment $environment) { $environment->getExtension('core')->setEscaper('custom', array($this, 'customEscaping')); } public function customEscaping(\Twig_Environment $environment, $string, $charset) { $string = htmlspecialchars($string); return $string; } public function getName() { return 'custom'; } public function getGlobals() { return []; }}
然后在去service.yml加入
EscapeExtension: class: AppBundle\Twig\EscapeExtension public: false tags: - { name: twig.extension }
使用时只要
{% autoescape 'custom' %}...{% endautoescape %}
注意
initRuntime在新版的twig已经建议不用了
要使用需要implements Twig_Extension_InitRuntimeInterface
因此这个範例只适合在特殊情况
平常建议使用twig的Filter去处理
且经测试过后 此方法无法使用在symfonyform