sonarrradarrplexorganizrnginxdashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboard
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							82 lines
						
					
					
						
							2.8 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							82 lines
						
					
					
						
							2.8 KiB
						
					
					
				
								<?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);
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |