[ Index ]

PHP Cross Reference of phpBB-3.2.11-deutsch

title

Body

[close]

/vendor/twig/twig/src/Error/ -> SyntaxError.php (source)

   1  <?php
   2  
   3  /*
   4   * This file is part of Twig.
   5   *
   6   * (c) Fabien Potencier
   7   * (c) Armin Ronacher
   8   *
   9   * For the full copyright and license information, please view the LICENSE
  10   * file that was distributed with this source code.
  11   */
  12  
  13  namespace Twig\Error;
  14  
  15  /**
  16   * \Exception thrown when a syntax error occurs during lexing or parsing of a template.
  17   *
  18   * @author Fabien Potencier <fabien@symfony.com>
  19   */
  20  class SyntaxError extends Error
  21  {
  22      /**
  23       * Tweaks the error message to include suggestions.
  24       *
  25       * @param string $name  The original name of the item that does not exist
  26       * @param array  $items An array of possible items
  27       */
  28      public function addSuggestions($name, array $items)
  29      {
  30          if (!$alternatives = self::computeAlternatives($name, $items)) {
  31              return;
  32          }
  33  
  34          $this->appendMessage(sprintf(' Did you mean "%s"?', implode('", "', $alternatives)));
  35      }
  36  
  37      /**
  38       * @internal
  39       *
  40       * To be merged with the addSuggestions() method in 2.0.
  41       */
  42      public static function computeAlternatives($name, $items)
  43      {
  44          $alternatives = [];
  45          foreach ($items as $item) {
  46              $lev = levenshtein($name, $item);
  47              if ($lev <= \strlen($name) / 3 || false !== strpos($item, $name)) {
  48                  $alternatives[$item] = $lev;
  49              }
  50          }
  51          asort($alternatives);
  52  
  53          return array_keys($alternatives);
  54      }
  55  }
  56  
  57  class_alias('Twig\Error\SyntaxError', 'Twig_Error_Syntax');


Generated: Wed Nov 11 20:33:01 2020 Cross-referenced by PHPXref 0.7.1