Overview

Namespaces

  • Contrib
    • Bundle
      • CoverallsBundle
        • Console
        • Entity
      • CoverallsV1Bundle
        • Api
        • Collector
        • Command
        • Config
        • Entity
          • Git
    • Component
      • File
      • Log
      • System
        • Git
  • Guzzle
    • Batch
      • Exception
    • Cache
    • Common
      • Exception
    • Http
      • Curl
      • Exception
      • Message
      • QueryAggregator
    • Inflection
    • Iterator
    • Log
    • Parser
      • Cookie
      • Message
      • UriTemplate
      • Url
    • Plugin
      • Async
      • Backoff
      • Cache
      • Cookie
        • CookieJar
        • Exception
      • CurlAuth
      • ErrorResponse
        • Exception
      • History
      • Log
      • Md5
      • Mock
      • Oauth
    • Service
      • Builder
      • Command
        • Factory
        • LocationVisitor
          • Request
          • Response
      • Description
      • Exception
      • Resource
    • Stream
  • PHP
  • Psr
    • Log
  • Symfony
    • Component
      • Config
        • Definition
          • Builder
          • Exception
        • Exception
        • Loader
        • Resource
        • Util
      • Console
        • Command
        • Formatter
        • Helper
        • Input
        • Output
        • Tester
      • EventDispatcher
        • Debug
      • Finder
        • Adapter
        • Comparator
        • Exception
        • Expression
        • Iterator
        • Shell
      • Stopwatch
      • Yaml
        • Exception

Interfaces

  • ExceptionInterface

Exceptions

  • DumpException
  • ParseException
  • RuntimeException
  • Overview
  • Namespace
  • Class
  • Tree
  • Todo
  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:  * @api
 20:  */
 21: class ParseException extends RuntimeException
 22: {
 23:     private $parsedFile;
 24:     private $parsedLine;
 25:     private $snippet;
 26:     private $rawMessage;
 27: 
 28:     /**
 29:      * Constructor.
 30:      *
 31:      * @param string    $message    The error message
 32:      * @param integer   $parsedLine The line where the error occurred
 33:      * @param integer   $snippet    The snippet of code near the problem
 34:      * @param string    $parsedFile The file name where the error occurred
 35:      * @param Exception $previous   The previous exception
 36:      */
 37:     public function __construct($message, $parsedLine = -1, $snippet = null, $parsedFile = null, Exception $previous = null)
 38:     {
 39:         $this->parsedFile = $parsedFile;
 40:         $this->parsedLine = $parsedLine;
 41:         $this->snippet = $snippet;
 42:         $this->rawMessage = $message;
 43: 
 44:         $this->updateRepr();
 45: 
 46:         parent::__construct($this->message, 0, $previous);
 47:     }
 48: 
 49:     /**
 50:      * Gets the snippet of code near the error.
 51:      *
 52:      * @return string The snippet of code
 53:      */
 54:     public function getSnippet()
 55:     {
 56:         return $this->snippet;
 57:     }
 58: 
 59:     /**
 60:      * Sets the snippet of code near the error.
 61:      *
 62:      * @param string $snippet The code snippet
 63:      */
 64:     public function setSnippet($snippet)
 65:     {
 66:         $this->snippet = $snippet;
 67: 
 68:         $this->updateRepr();
 69:     }
 70: 
 71:     /**
 72:      * Gets the filename where the error occurred.
 73:      *
 74:      * This method returns null if a string is parsed.
 75:      *
 76:      * @return string The filename
 77:      */
 78:     public function getParsedFile()
 79:     {
 80:         return $this->parsedFile;
 81:     }
 82: 
 83:     /**
 84:      * Sets the filename where the error occurred.
 85:      *
 86:      * @param string $parsedFile The filename
 87:      */
 88:     public function setParsedFile($parsedFile)
 89:     {
 90:         $this->parsedFile = $parsedFile;
 91: 
 92:         $this->updateRepr();
 93:     }
 94: 
 95:     /**
 96:      * Gets the line where the error occurred.
 97:      *
 98:      * @return integer The file line
 99:      */
100:     public function getParsedLine()
101:     {
102:         return $this->parsedLine;
103:     }
104: 
105:     /**
106:      * Sets the line where the error occurred.
107:      *
108:      * @param integer $parsedLine The file line
109:      */
110:     public function setParsedLine($parsedLine)
111:     {
112:         $this->parsedLine = $parsedLine;
113: 
114:         $this->updateRepr();
115:     }
116: 
117:     private function updateRepr()
118:     {
119:         $this->message = $this->rawMessage;
120: 
121:         $dot = false;
122:         if ('.' === substr($this->message, -1)) {
123:             $this->message = substr($this->message, 0, -1);
124:             $dot = true;
125:         }
126: 
127:         if (null !== $this->parsedFile) {
128:             $this->message .= sprintf(' in %s', json_encode($this->parsedFile));
129:         }
130: 
131:         if ($this->parsedLine >= 0) {
132:             $this->message .= sprintf(' at line %d', $this->parsedLine);
133:         }
134: 
135:         if ($this->snippet) {
136:             $this->message .= sprintf(' (near "%s")', $this->snippet);
137:         }
138: 
139:         if ($dot) {
140:             $this->message .= '.';
141:         }
142:     }
143: }
144: 
php-coveralls API documentation generated by ApiGen 2.8.0