[ Index ] |
PHP Cross Reference of phpBB-3.2.11-deutsch |
[Summary view] [Print] [Text view]
1 <?php 2 3 /* 4 * This file is part of Twig. 5 * 6 * (c) Fabien Potencier 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 12 namespace Twig\Util; 13 14 use Twig\Environment; 15 use Twig\Error\SyntaxError; 16 use Twig\Source; 17 18 /** 19 * @author Fabien Potencier <fabien@symfony.com> 20 * 21 * @final 22 */ 23 class DeprecationCollector 24 { 25 private $twig; 26 private $deprecations; 27 28 public function __construct(Environment $twig) 29 { 30 $this->twig = $twig; 31 } 32 33 /** 34 * Returns deprecations for templates contained in a directory. 35 * 36 * @param string $dir A directory where templates are stored 37 * @param string $ext Limit the loaded templates by extension 38 * 39 * @return array An array of deprecations 40 */ 41 public function collectDir($dir, $ext = '.twig') 42 { 43 $iterator = new \RegexIterator( 44 new \RecursiveIteratorIterator( 45 new \RecursiveDirectoryIterator($dir), \RecursiveIteratorIterator::LEAVES_ONLY 46 ), '{'.preg_quote($ext).'$}' 47 ); 48 49 return $this->collect(new TemplateDirIterator($iterator)); 50 } 51 52 /** 53 * Returns deprecations for passed templates. 54 * 55 * @param \Traversable $iterator An iterator of templates (where keys are template names and values the contents of the template) 56 * 57 * @return array An array of deprecations 58 */ 59 public function collect(\Traversable $iterator) 60 { 61 $this->deprecations = []; 62 63 set_error_handler([$this, 'errorHandler']); 64 65 foreach ($iterator as $name => $contents) { 66 try { 67 $this->twig->parse($this->twig->tokenize(new Source($contents, $name))); 68 } catch (SyntaxError $e) { 69 // ignore templates containing syntax errors 70 } 71 } 72 73 restore_error_handler(); 74 75 $deprecations = $this->deprecations; 76 $this->deprecations = []; 77 78 return $deprecations; 79 } 80 81 /** 82 * @internal 83 */ 84 public function errorHandler($type, $msg) 85 { 86 if (E_USER_DEPRECATED === $type) { 87 $this->deprecations[] = $msg; 88 } 89 } 90 } 91 92 class_alias('Twig\Util\DeprecationCollector', 'Twig_Util_DeprecationCollector');
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Nov 11 20:33:01 2020 | Cross-referenced by PHPXref 0.7.1 |