[ Index ]

PHP Cross Reference of phpBB-3.2.11-deutsch

title

Body

[close]

/vendor/symfony/yaml/Exception/ -> ParseException.php (source)

   1  <?php
   2  
   3  /*
   4   * This file is part of the Symfony package.
   5   *
   6   * (c) Fabien Potencier <fabien@symfony.com>
   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 Symfony\Component\Yaml\Exception;
  13  
  14  /**
  15   * Exception class thrown when an error occurs during parsing.
  16   *
  17   * @author Fabien Potencier <fabien@symfony.com>
  18   */
  19  class ParseException extends RuntimeException
  20  {
  21      private $parsedFile;
  22      private $parsedLine;
  23      private $snippet;
  24      private $rawMessage;
  25  
  26      /**
  27       * @param string          $message    The error message
  28       * @param int             $parsedLine The line where the error occurred
  29       * @param string|null     $snippet    The snippet of code near the problem
  30       * @param string|null     $parsedFile The file name where the error occurred
  31       * @param \Exception|null $previous   The previous exception
  32       */
  33      public function __construct($message, $parsedLine = -1, $snippet = null, $parsedFile = null, \Exception $previous = null)
  34      {
  35          $this->parsedFile = $parsedFile;
  36          $this->parsedLine = $parsedLine;
  37          $this->snippet = $snippet;
  38          $this->rawMessage = $message;
  39  
  40          $this->updateRepr();
  41  
  42          parent::__construct($this->message, 0, $previous);
  43      }
  44  
  45      /**
  46       * Gets the snippet of code near the error.
  47       *
  48       * @return string The snippet of code
  49       */
  50      public function getSnippet()
  51      {
  52          return $this->snippet;
  53      }
  54  
  55      /**
  56       * Sets the snippet of code near the error.
  57       *
  58       * @param string $snippet The code snippet
  59       */
  60      public function setSnippet($snippet)
  61      {
  62          $this->snippet = $snippet;
  63  
  64          $this->updateRepr();
  65      }
  66  
  67      /**
  68       * Gets the filename where the error occurred.
  69       *
  70       * This method returns null if a string is parsed.
  71       *
  72       * @return string The filename
  73       */
  74      public function getParsedFile()
  75      {
  76          return $this->parsedFile;
  77      }
  78  
  79      /**
  80       * Sets the filename where the error occurred.
  81       *
  82       * @param string $parsedFile The filename
  83       */
  84      public function setParsedFile($parsedFile)
  85      {
  86          $this->parsedFile = $parsedFile;
  87  
  88          $this->updateRepr();
  89      }
  90  
  91      /**
  92       * Gets the line where the error occurred.
  93       *
  94       * @return int The file line
  95       */
  96      public function getParsedLine()
  97      {
  98          return $this->parsedLine;
  99      }
 100  
 101      /**
 102       * Sets the line where the error occurred.
 103       *
 104       * @param int $parsedLine The file line
 105       */
 106      public function setParsedLine($parsedLine)
 107      {
 108          $this->parsedLine = $parsedLine;
 109  
 110          $this->updateRepr();
 111      }
 112  
 113      private function updateRepr()
 114      {
 115          $this->message = $this->rawMessage;
 116  
 117          $dot = false;
 118          if ('.' === substr($this->message, -1)) {
 119              $this->message = substr($this->message, 0, -1);
 120              $dot = true;
 121          }
 122  
 123          if (null !== $this->parsedFile) {
 124              if (\PHP_VERSION_ID >= 50400) {
 125                  $jsonOptions = JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE;
 126              } else {
 127                  $jsonOptions = 0;
 128              }
 129              $this->message .= sprintf(' in %s', json_encode($this->parsedFile, $jsonOptions));
 130          }
 131  
 132          if ($this->parsedLine >= 0) {
 133              $this->message .= sprintf(' at line %d', $this->parsedLine);
 134          }
 135  
 136          if ($this->snippet) {
 137              $this->message .= sprintf(' (near "%s")', $this->snippet);
 138          }
 139  
 140          if ($dot) {
 141              $this->message .= '.';
 142          }
 143      }
 144  }


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