[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/libraries/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 <[email protected]>
   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 <[email protected]>
  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       */
  32      public function __construct(string $message, int $parsedLine = -1, string $snippet = null, string $parsedFile = null, \Throwable $previous = null)
  33      {
  34          $this->parsedFile = $parsedFile;
  35          $this->parsedLine = $parsedLine;
  36          $this->snippet = $snippet;
  37          $this->rawMessage = $message;
  38  
  39          $this->updateRepr();
  40  
  41          parent::__construct($this->message, 0, $previous);
  42      }
  43  
  44      /**
  45       * Gets the snippet of code near the error.
  46       *
  47       * @return string
  48       */
  49      public function getSnippet()
  50      {
  51          return $this->snippet;
  52      }
  53  
  54      /**
  55       * Sets the snippet of code near the error.
  56       */
  57      public function setSnippet(string $snippet)
  58      {
  59          $this->snippet = $snippet;
  60  
  61          $this->updateRepr();
  62      }
  63  
  64      /**
  65       * Gets the filename where the error occurred.
  66       *
  67       * This method returns null if a string is parsed.
  68       *
  69       * @return string
  70       */
  71      public function getParsedFile()
  72      {
  73          return $this->parsedFile;
  74      }
  75  
  76      /**
  77       * Sets the filename where the error occurred.
  78       */
  79      public function setParsedFile(string $parsedFile)
  80      {
  81          $this->parsedFile = $parsedFile;
  82  
  83          $this->updateRepr();
  84      }
  85  
  86      /**
  87       * Gets the line where the error occurred.
  88       *
  89       * @return int
  90       */
  91      public function getParsedLine()
  92      {
  93          return $this->parsedLine;
  94      }
  95  
  96      /**
  97       * Sets the line where the error occurred.
  98       */
  99      public function setParsedLine(int $parsedLine)
 100      {
 101          $this->parsedLine = $parsedLine;
 102  
 103          $this->updateRepr();
 104      }
 105  
 106      private function updateRepr()
 107      {
 108          $this->message = $this->rawMessage;
 109  
 110          $dot = false;
 111          if ('.' === substr($this->message, -1)) {
 112              $this->message = substr($this->message, 0, -1);
 113              $dot = true;
 114          }
 115  
 116          if (null !== $this->parsedFile) {
 117              $this->message .= sprintf(' in %s', json_encode($this->parsedFile, \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE));
 118          }
 119  
 120          if ($this->parsedLine >= 0) {
 121              $this->message .= sprintf(' at line %d', $this->parsedLine);
 122          }
 123  
 124          if ($this->snippet) {
 125              $this->message .= sprintf(' (near "%s")', $this->snippet);
 126          }
 127  
 128          if ($dot) {
 129              $this->message .= '.';
 130          }
 131      }
 132  }


Generated: Wed Sep 7 05:41:13 2022 Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer