summaryrefslogtreecommitdiff
path: root/vendor/symfony/debug/Exception
diff options
context:
space:
mode:
authorFrédéric Guillot <fred@kanboard.net>2017-12-15 11:24:35 -0800
committerFrédéric Guillot <fred@kanboard.net>2017-12-15 11:55:42 -0800
commita93b8e10f5954be0853eec693c13e84c4bd9e6f2 (patch)
treeeda5de9494b819235616e8623bb3393e9cc373af /vendor/symfony/debug/Exception
parent2c72a283f2d51034f85f4e2ca8b194d304a3c433 (diff)
Kanboard requires at least PHP 5.6 now
Diffstat (limited to 'vendor/symfony/debug/Exception')
-rw-r--r--vendor/symfony/debug/Exception/ClassNotFoundException.php33
-rw-r--r--vendor/symfony/debug/Exception/ContextErrorException.php40
-rw-r--r--vendor/symfony/debug/Exception/FatalErrorException.php82
-rw-r--r--vendor/symfony/debug/Exception/FatalThrowableError.php44
-rw-r--r--vendor/symfony/debug/Exception/FlattenException.php263
-rw-r--r--vendor/symfony/debug/Exception/OutOfMemoryException.php21
-rw-r--r--vendor/symfony/debug/Exception/SilencedErrorContext.php67
-rw-r--r--vendor/symfony/debug/Exception/UndefinedFunctionException.php33
-rw-r--r--vendor/symfony/debug/Exception/UndefinedMethodException.php33
9 files changed, 616 insertions, 0 deletions
diff --git a/vendor/symfony/debug/Exception/ClassNotFoundException.php b/vendor/symfony/debug/Exception/ClassNotFoundException.php
new file mode 100644
index 00000000..b91bf466
--- /dev/null
+++ b/vendor/symfony/debug/Exception/ClassNotFoundException.php
@@ -0,0 +1,33 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Debug\Exception;
+
+/**
+ * Class (or Trait or Interface) Not Found Exception.
+ *
+ * @author Konstanton Myakshin <koc-dp@yandex.ru>
+ */
+class ClassNotFoundException extends FatalErrorException
+{
+ public function __construct($message, \ErrorException $previous)
+ {
+ parent::__construct(
+ $message,
+ $previous->getCode(),
+ $previous->getSeverity(),
+ $previous->getFile(),
+ $previous->getLine(),
+ $previous->getPrevious()
+ );
+ $this->setTrace($previous->getTrace());
+ }
+}
diff --git a/vendor/symfony/debug/Exception/ContextErrorException.php b/vendor/symfony/debug/Exception/ContextErrorException.php
new file mode 100644
index 00000000..6561d4df
--- /dev/null
+++ b/vendor/symfony/debug/Exception/ContextErrorException.php
@@ -0,0 +1,40 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Debug\Exception;
+
+/**
+ * Error Exception with Variable Context.
+ *
+ * @author Christian Sciberras <uuf6429@gmail.com>
+ *
+ * @deprecated since version 3.3. Instead, \ErrorException will be used directly in 4.0.
+ */
+class ContextErrorException extends \ErrorException
+{
+ private $context = array();
+
+ public function __construct($message, $code, $severity, $filename, $lineno, $context = array())
+ {
+ parent::__construct($message, $code, $severity, $filename, $lineno);
+ $this->context = $context;
+ }
+
+ /**
+ * @return array Array of variables that existed when the exception occurred
+ */
+ public function getContext()
+ {
+ @trigger_error(sprintf('The %s class is deprecated since version 3.3 and will be removed in 4.0.', __CLASS__), E_USER_DEPRECATED);
+
+ return $this->context;
+ }
+}
diff --git a/vendor/symfony/debug/Exception/FatalErrorException.php b/vendor/symfony/debug/Exception/FatalErrorException.php
new file mode 100644
index 00000000..f24a54e7
--- /dev/null
+++ b/vendor/symfony/debug/Exception/FatalErrorException.php
@@ -0,0 +1,82 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Debug\Exception;
+
+/**
+ * Fatal Error Exception.
+ *
+ * @author Konstanton Myakshin <koc-dp@yandex.ru>
+ */
+class FatalErrorException extends \ErrorException
+{
+ public function __construct($message, $code, $severity, $filename, $lineno, $traceOffset = null, $traceArgs = true, array $trace = null)
+ {
+ parent::__construct($message, $code, $severity, $filename, $lineno);
+
+ if (null !== $trace) {
+ if (!$traceArgs) {
+ foreach ($trace as &$frame) {
+ unset($frame['args'], $frame['this'], $frame);
+ }
+ }
+
+ $this->setTrace($trace);
+ } elseif (null !== $traceOffset) {
+ if (function_exists('xdebug_get_function_stack')) {
+ $trace = xdebug_get_function_stack();
+ if (0 < $traceOffset) {
+ array_splice($trace, -$traceOffset);
+ }
+
+ foreach ($trace as &$frame) {
+ if (!isset($frame['type'])) {
+ // XDebug pre 2.1.1 doesn't currently set the call type key http://bugs.xdebug.org/view.php?id=695
+ if (isset($frame['class'])) {
+ $frame['type'] = '::';
+ }
+ } elseif ('dynamic' === $frame['type']) {
+ $frame['type'] = '->';
+ } elseif ('static' === $frame['type']) {
+ $frame['type'] = '::';
+ }
+
+ // XDebug also has a different name for the parameters array
+ if (!$traceArgs) {
+ unset($frame['params'], $frame['args']);
+ } elseif (isset($frame['params']) && !isset($frame['args'])) {
+ $frame['args'] = $frame['params'];
+ unset($frame['params']);
+ }
+ }
+
+ unset($frame);
+ $trace = array_reverse($trace);
+ } elseif (function_exists('symfony_debug_backtrace')) {
+ $trace = symfony_debug_backtrace();
+ if (0 < $traceOffset) {
+ array_splice($trace, 0, $traceOffset);
+ }
+ } else {
+ $trace = array();
+ }
+
+ $this->setTrace($trace);
+ }
+ }
+
+ protected function setTrace($trace)
+ {
+ $traceReflector = new \ReflectionProperty('Exception', 'trace');
+ $traceReflector->setAccessible(true);
+ $traceReflector->setValue($this, $trace);
+ }
+}
diff --git a/vendor/symfony/debug/Exception/FatalThrowableError.php b/vendor/symfony/debug/Exception/FatalThrowableError.php
new file mode 100644
index 00000000..34f43b17
--- /dev/null
+++ b/vendor/symfony/debug/Exception/FatalThrowableError.php
@@ -0,0 +1,44 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Debug\Exception;
+
+/**
+ * Fatal Throwable Error.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class FatalThrowableError extends FatalErrorException
+{
+ public function __construct(\Throwable $e)
+ {
+ if ($e instanceof \ParseError) {
+ $message = 'Parse error: '.$e->getMessage();
+ $severity = E_PARSE;
+ } elseif ($e instanceof \TypeError) {
+ $message = 'Type error: '.$e->getMessage();
+ $severity = E_RECOVERABLE_ERROR;
+ } else {
+ $message = $e->getMessage();
+ $severity = E_ERROR;
+ }
+
+ \ErrorException::__construct(
+ $message,
+ $e->getCode(),
+ $severity,
+ $e->getFile(),
+ $e->getLine()
+ );
+
+ $this->setTrace($e->getTrace());
+ }
+}
diff --git a/vendor/symfony/debug/Exception/FlattenException.php b/vendor/symfony/debug/Exception/FlattenException.php
new file mode 100644
index 00000000..24679dca
--- /dev/null
+++ b/vendor/symfony/debug/Exception/FlattenException.php
@@ -0,0 +1,263 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Debug\Exception;
+
+use Symfony\Component\HttpFoundation\Exception\RequestExceptionInterface;
+use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
+
+/**
+ * FlattenException wraps a PHP Exception to be able to serialize it.
+ *
+ * Basically, this class removes all objects from the trace.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+class FlattenException
+{
+ private $message;
+ private $code;
+ private $previous;
+ private $trace;
+ private $class;
+ private $statusCode;
+ private $headers;
+ private $file;
+ private $line;
+
+ public static function create(\Exception $exception, $statusCode = null, array $headers = array())
+ {
+ $e = new static();
+ $e->setMessage($exception->getMessage());
+ $e->setCode($exception->getCode());
+
+ if ($exception instanceof HttpExceptionInterface) {
+ $statusCode = $exception->getStatusCode();
+ $headers = array_merge($headers, $exception->getHeaders());
+ } elseif ($exception instanceof RequestExceptionInterface) {
+ $statusCode = 400;
+ }
+
+ if (null === $statusCode) {
+ $statusCode = 500;
+ }
+
+ $e->setStatusCode($statusCode);
+ $e->setHeaders($headers);
+ $e->setTraceFromException($exception);
+ $e->setClass(get_class($exception));
+ $e->setFile($exception->getFile());
+ $e->setLine($exception->getLine());
+
+ $previous = $exception->getPrevious();
+
+ if ($previous instanceof \Exception) {
+ $e->setPrevious(static::create($previous));
+ } elseif ($previous instanceof \Throwable) {
+ $e->setPrevious(static::create(new FatalThrowableError($previous)));
+ }
+
+ return $e;
+ }
+
+ public function toArray()
+ {
+ $exceptions = array();
+ foreach (array_merge(array($this), $this->getAllPrevious()) as $exception) {
+ $exceptions[] = array(
+ 'message' => $exception->getMessage(),
+ 'class' => $exception->getClass(),
+ 'trace' => $exception->getTrace(),
+ );
+ }
+
+ return $exceptions;
+ }
+
+ public function getStatusCode()
+ {
+ return $this->statusCode;
+ }
+
+ public function setStatusCode($code)
+ {
+ $this->statusCode = $code;
+ }
+
+ public function getHeaders()
+ {
+ return $this->headers;
+ }
+
+ public function setHeaders(array $headers)
+ {
+ $this->headers = $headers;
+ }
+
+ public function getClass()
+ {
+ return $this->class;
+ }
+
+ public function setClass($class)
+ {
+ $this->class = $class;
+ }
+
+ public function getFile()
+ {
+ return $this->file;
+ }
+
+ public function setFile($file)
+ {
+ $this->file = $file;
+ }
+
+ public function getLine()
+ {
+ return $this->line;
+ }
+
+ public function setLine($line)
+ {
+ $this->line = $line;
+ }
+
+ public function getMessage()
+ {
+ return $this->message;
+ }
+
+ public function setMessage($message)
+ {
+ $this->message = $message;
+ }
+
+ public function getCode()
+ {
+ return $this->code;
+ }
+
+ public function setCode($code)
+ {
+ $this->code = $code;
+ }
+
+ public function getPrevious()
+ {
+ return $this->previous;
+ }
+
+ public function setPrevious(FlattenException $previous)
+ {
+ $this->previous = $previous;
+ }
+
+ public function getAllPrevious()
+ {
+ $exceptions = array();
+ $e = $this;
+ while ($e = $e->getPrevious()) {
+ $exceptions[] = $e;
+ }
+
+ return $exceptions;
+ }
+
+ public function getTrace()
+ {
+ return $this->trace;
+ }
+
+ public function setTraceFromException(\Exception $exception)
+ {
+ $this->setTrace($exception->getTrace(), $exception->getFile(), $exception->getLine());
+ }
+
+ public function setTrace($trace, $file, $line)
+ {
+ $this->trace = array();
+ $this->trace[] = array(
+ 'namespace' => '',
+ 'short_class' => '',
+ 'class' => '',
+ 'type' => '',
+ 'function' => '',
+ 'file' => $file,
+ 'line' => $line,
+ 'args' => array(),
+ );
+ foreach ($trace as $entry) {
+ $class = '';
+ $namespace = '';
+ if (isset($entry['class'])) {
+ $parts = explode('\\', $entry['class']);
+ $class = array_pop($parts);
+ $namespace = implode('\\', $parts);
+ }
+
+ $this->trace[] = array(
+ 'namespace' => $namespace,
+ 'short_class' => $class,
+ 'class' => isset($entry['class']) ? $entry['class'] : '',
+ 'type' => isset($entry['type']) ? $entry['type'] : '',
+ 'function' => isset($entry['function']) ? $entry['function'] : null,
+ 'file' => isset($entry['file']) ? $entry['file'] : null,
+ 'line' => isset($entry['line']) ? $entry['line'] : null,
+ 'args' => isset($entry['args']) ? $this->flattenArgs($entry['args']) : array(),
+ );
+ }
+ }
+
+ private function flattenArgs($args, $level = 0, &$count = 0)
+ {
+ $result = array();
+ foreach ($args as $key => $value) {
+ if (++$count > 1e4) {
+ return array('array', '*SKIPPED over 10000 entries*');
+ }
+ if ($value instanceof \__PHP_Incomplete_Class) {
+ // is_object() returns false on PHP<=7.1
+ $result[$key] = array('incomplete-object', $this->getClassNameFromIncomplete($value));
+ } elseif (is_object($value)) {
+ $result[$key] = array('object', get_class($value));
+ } elseif (is_array($value)) {
+ if ($level > 10) {
+ $result[$key] = array('array', '*DEEP NESTED ARRAY*');
+ } else {
+ $result[$key] = array('array', $this->flattenArgs($value, $level + 1, $count));
+ }
+ } elseif (null === $value) {
+ $result[$key] = array('null', null);
+ } elseif (is_bool($value)) {
+ $result[$key] = array('boolean', $value);
+ } elseif (is_int($value)) {
+ $result[$key] = array('integer', $value);
+ } elseif (is_float($value)) {
+ $result[$key] = array('float', $value);
+ } elseif (is_resource($value)) {
+ $result[$key] = array('resource', get_resource_type($value));
+ } else {
+ $result[$key] = array('string', (string) $value);
+ }
+ }
+
+ return $result;
+ }
+
+ private function getClassNameFromIncomplete(\__PHP_Incomplete_Class $value)
+ {
+ $array = new \ArrayObject($value);
+
+ return $array['__PHP_Incomplete_Class_Name'];
+ }
+}
diff --git a/vendor/symfony/debug/Exception/OutOfMemoryException.php b/vendor/symfony/debug/Exception/OutOfMemoryException.php
new file mode 100644
index 00000000..fec19798
--- /dev/null
+++ b/vendor/symfony/debug/Exception/OutOfMemoryException.php
@@ -0,0 +1,21 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Debug\Exception;
+
+/**
+ * Out of memory exception.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class OutOfMemoryException extends FatalErrorException
+{
+}
diff --git a/vendor/symfony/debug/Exception/SilencedErrorContext.php b/vendor/symfony/debug/Exception/SilencedErrorContext.php
new file mode 100644
index 00000000..4be83491
--- /dev/null
+++ b/vendor/symfony/debug/Exception/SilencedErrorContext.php
@@ -0,0 +1,67 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Debug\Exception;
+
+/**
+ * Data Object that represents a Silenced Error.
+ *
+ * @author Grégoire Pineau <lyrixx@lyrixx.info>
+ */
+class SilencedErrorContext implements \JsonSerializable
+{
+ public $count = 1;
+
+ private $severity;
+ private $file;
+ private $line;
+ private $trace;
+
+ public function __construct($severity, $file, $line, array $trace = array(), $count = 1)
+ {
+ $this->severity = $severity;
+ $this->file = $file;
+ $this->line = $line;
+ $this->trace = $trace;
+ $this->count = $count;
+ }
+
+ public function getSeverity()
+ {
+ return $this->severity;
+ }
+
+ public function getFile()
+ {
+ return $this->file;
+ }
+
+ public function getLine()
+ {
+ return $this->line;
+ }
+
+ public function getTrace()
+ {
+ return $this->trace;
+ }
+
+ public function JsonSerialize()
+ {
+ return array(
+ 'severity' => $this->severity,
+ 'file' => $this->file,
+ 'line' => $this->line,
+ 'trace' => $this->trace,
+ 'count' => $this->count,
+ );
+ }
+}
diff --git a/vendor/symfony/debug/Exception/UndefinedFunctionException.php b/vendor/symfony/debug/Exception/UndefinedFunctionException.php
new file mode 100644
index 00000000..a66ae2a3
--- /dev/null
+++ b/vendor/symfony/debug/Exception/UndefinedFunctionException.php
@@ -0,0 +1,33 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Debug\Exception;
+
+/**
+ * Undefined Function Exception.
+ *
+ * @author Konstanton Myakshin <koc-dp@yandex.ru>
+ */
+class UndefinedFunctionException extends FatalErrorException
+{
+ public function __construct($message, \ErrorException $previous)
+ {
+ parent::__construct(
+ $message,
+ $previous->getCode(),
+ $previous->getSeverity(),
+ $previous->getFile(),
+ $previous->getLine(),
+ $previous->getPrevious()
+ );
+ $this->setTrace($previous->getTrace());
+ }
+}
diff --git a/vendor/symfony/debug/Exception/UndefinedMethodException.php b/vendor/symfony/debug/Exception/UndefinedMethodException.php
new file mode 100644
index 00000000..350dc318
--- /dev/null
+++ b/vendor/symfony/debug/Exception/UndefinedMethodException.php
@@ -0,0 +1,33 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Debug\Exception;
+
+/**
+ * Undefined Method Exception.
+ *
+ * @author Grégoire Pineau <lyrixx@lyrixx.info>
+ */
+class UndefinedMethodException extends FatalErrorException
+{
+ public function __construct($message, \ErrorException $previous)
+ {
+ parent::__construct(
+ $message,
+ $previous->getCode(),
+ $previous->getSeverity(),
+ $previous->getFile(),
+ $previous->getLine(),
+ $previous->getPrevious()
+ );
+ $this->setTrace($previous->getTrace());
+ }
+}