Verzeichnisstruktur phpBB-3.2.0


Veröffentlicht
06.01.2017

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

      (Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

ParseException.php

Zuletzt modifiziert: 09.10.2024, 12:56 - Dateigröße: 3.49 KiB


 001  <?php
 002   
 003  /*
 004   * This file is part of the Symfony package.
 005   *
 006   * (c) Fabien Potencier <fabien@symfony.com>
 007   *
 008   * For the full copyright and license information, please view the LICENSE
 009   * file that was distributed with this source code.
 010   */
 011   
 012  namespace Symfony\Component\Yaml\Exception;
 013   
 014  /**
 015   * Exception class thrown when an error occurs during parsing.
 016   *
 017   * @author Fabien Potencier <fabien@symfony.com>
 018   */
 019  class ParseException extends RuntimeException
 020  {
 021      private $parsedFile;
 022      private $parsedLine;
 023      private $snippet;
 024      private $rawMessage;
 025   
 026      /**
 027       * Constructor.
 028       *
 029       * @param string     $message    The error message
 030       * @param int        $parsedLine The line where the error occurred
 031       * @param int        $snippet    The snippet of code near the problem
 032       * @param string     $parsedFile The file name where the error occurred
 033       * @param \Exception $previous   The previous exception
 034       */
 035      public function __construct($message, $parsedLine = -1, $snippet = null, $parsedFile = null, \Exception $previous = null)
 036      {
 037          $this->parsedFile = $parsedFile;
 038          $this->parsedLine = $parsedLine;
 039          $this->snippet = $snippet;
 040          $this->rawMessage = $message;
 041   
 042          $this->updateRepr();
 043   
 044          parent::__construct($this->message, 0, $previous);
 045      }
 046   
 047      /**
 048       * Gets the snippet of code near the error.
 049       *
 050       * @return string The snippet of code
 051       */
 052      public function getSnippet()
 053      {
 054          return $this->snippet;
 055      }
 056   
 057      /**
 058       * Sets the snippet of code near the error.
 059       *
 060       * @param string $snippet The code snippet
 061       */
 062      public function setSnippet($snippet)
 063      {
 064          $this->snippet = $snippet;
 065   
 066          $this->updateRepr();
 067      }
 068   
 069      /**
 070       * Gets the filename where the error occurred.
 071       *
 072       * This method returns null if a string is parsed.
 073       *
 074       * @return string The filename
 075       */
 076      public function getParsedFile()
 077      {
 078          return $this->parsedFile;
 079      }
 080   
 081      /**
 082       * Sets the filename where the error occurred.
 083       *
 084       * @param string $parsedFile The filename
 085       */
 086      public function setParsedFile($parsedFile)
 087      {
 088          $this->parsedFile = $parsedFile;
 089   
 090          $this->updateRepr();
 091      }
 092   
 093      /**
 094       * Gets the line where the error occurred.
 095       *
 096       * @return int The file line
 097       */
 098      public function getParsedLine()
 099      {
 100          return $this->parsedLine;
 101      }
 102   
 103      /**
 104       * Sets the line where the error occurred.
 105       *
 106       * @param int $parsedLine The file line
 107       */
 108      public function setParsedLine($parsedLine)
 109      {
 110          $this->parsedLine = $parsedLine;
 111   
 112          $this->updateRepr();
 113      }
 114   
 115      private function updateRepr()
 116      {
 117          $this->message = $this->rawMessage;
 118   
 119          $dot = false;
 120          if ('.' === substr($this->message, -1)) {
 121              $this->message = substr($this->message, 0, -1);
 122              $dot = true;
 123          }
 124   
 125          if (null !== $this->parsedFile) {
 126              if (PHP_VERSION_ID >= 50400) {
 127                  $jsonOptions = JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE;
 128              } else {
 129                  $jsonOptions = 0;
 130              }
 131              $this->message .= sprintf(' in %s', json_encode($this->parsedFile, $jsonOptions));
 132          }
 133   
 134          if ($this->parsedLine >= 0) {
 135              $this->message .= sprintf(' at line %d', $this->parsedLine);
 136          }
 137   
 138          if ($this->snippet) {
 139              $this->message .= sprintf(' (near "%s")', $this->snippet);
 140          }
 141   
 142          if ($dot) {
 143              $this->message .= '.';
 144          }
 145      }
 146  }
 147