<?php namespace Smarty; /** * Smarty compiler exception class * */ class CompilerException extends Exception { /** * The constructor of the exception * * @param string $message The Exception message to throw. * @param int $code The Exception code. * @param string|null $filename The filename where the exception is thrown. * @param int|null $line The line number where the exception is thrown. * @param \Throwable|null $previous The previous exception used for the exception chaining. */ public function __construct( string $message = "", int $code = 0, ?string $filename = null, ?int $line = null, ?\Throwable $previous = null ) { parent::__construct($message, $code, $previous); // These are optional parameters, should be be overridden only when present! if ($filename) { $this->file = $filename; } if ($line) { $this->line = $line; } } /** * @return string */ public function __toString() { return ' --> Smarty Compiler: ' . $this->message . ' <-- '; } /** * @param int $line */ public function setLine($line) { $this->line = $line; } /** * The template source snippet relating to the error * * @type string|null */ public $source = null; /** * The raw text of the error message * * @type string|null */ public $desc = null; /** * The resource identifier or template name * * @type string|null */ public $template = null; }