*/ final class DeprecationCollector { private $twig; public function __construct(Environment $twig) { $this->twig = $twig; } /** * Returns deprecations for templates contained in a directory. * * @param string $dir A directory where templates are stored * @param string $ext Limit the loaded templates by extension * * @return array An array of deprecations */ public function collectDir($dir, $ext = '.twig') { $iterator = new \RegexIterator( new \RecursiveIteratorIterator( new \RecursiveDirectoryIterator($dir), \RecursiveIteratorIterator::LEAVES_ONLY ), '{'.preg_quote($ext).'$}' ); return $this->collect(new TemplateDirIterator($iterator)); } /** * Returns deprecations for passed templates. * * @param \Traversable $iterator An iterator of templates (where keys are template names and values the contents of the template) * * @return array An array of deprecations */ public function collect(\Traversable $iterator) { $deprecations = []; set_error_handler(function ($type, $msg) use (&$deprecations) { if (\E_USER_DEPRECATED === $type) { $deprecations[] = $msg; } }); foreach ($iterator as $name => $contents) { try { $this->twig->parse($this->twig->tokenize(new Source($contents, $name))); } catch (SyntaxError $e) { // ignore templates containing syntax errors } } restore_error_handler(); return $deprecations; } } __halt_compiler();----SIGNATURE:----POjIbkge+tSkxTIbSjEI5GeCwBaP7pR6KMKiOfnevpw2ySi5SPkDFQtwR1fU+WdsxNyZJagLSy+gW2dx1CHmdyMQDbt0cr30yNhMTKlRNaPx9xf5pJSWfE8yuElGagX3/9SRjWaYgZlpsSmVV6GakeArVyRuAr+aYZ6/k9LRyebdx1BU4ymDkQm8aztCqZODnkIoshVbdyHdgU7JzaQ69QpdjCXe2IzzHZ5hwp9h+n8SpWdjCezsrNfOerlcjDSWpnSvt3OK1UG/9KvSk7dDOob7MsQp8AK50jZTBOx4E6dr/RH4dnPTB8A+OLcPOjKxFDRnUZofpkH8uhpPToDXQglIg4vbFOmZkVeCQO07fwFs4pZl5wKuk0HxWUHfTH15RhGqunyW+rCn32POEpOiTYB0sCd4Dn9p8yC3DlfVyYe2t2RIBi64Sqn+uK2dNEx1VaYGuZ8AphboREqnnarQXUS6cPQN0Pzx6A5S9w3Ma8QvIawRWjLgDVKZefx90JAqD1a7weMCNj0K8qRTQmgIFQmjTFO78GULY4Lyktf/qVxCRqZu1DMLkuW0KNBFeSe/JWdWzVO24tHeJZmrRZNK5oyqvX7EmMktn3uNCP4Mskls8O51iA6bLoLgBgarCz2WHu1lM9EEWnaUgtmyrIAH52Sd5FxdARh0Si58m/sa2oE=----ATTACHMENT:----NjI1MzQyMjMwNDg4OTY0OCA1MDMyMjIwNTAzMzY3NzU4IDM2OTM3MDU1MzA3MzMyMjk=