2015-08-17 17:00:26 -07:00
< ? 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\HttpKernel\DataCollector ;
use Symfony\Component\Debug\Exception\FlattenException ;
use Symfony\Component\HttpFoundation\Request ;
use Symfony\Component\HttpFoundation\Response ;
/**
* ExceptionDataCollector .
*
* @ author Fabien Potencier < fabien @ symfony . com >
*/
class ExceptionDataCollector extends DataCollector
{
/**
* { @ inheritdoc }
*/
public function collect ( Request $request , Response $response , \Exception $exception = null )
{
if ( null !== $exception ) {
$this -> data = array (
'exception' => FlattenException :: create ( $exception ),
);
}
}
2018-11-23 12:29:20 +00:00
/**
* { @ inheritdoc }
*/
public function reset ()
{
$this -> data = array ();
}
2015-08-17 17:00:26 -07:00
/**
* Checks if the exception is not null .
*
* @ return bool true if the exception is not null , false otherwise
*/
public function hasException ()
{
return isset ( $this -> data [ 'exception' ]);
}
/**
* Gets the exception .
*
* @ return \Exception The exception
*/
public function getException ()
{
return $this -> data [ 'exception' ];
}
/**
* Gets the exception message .
*
* @ return string The exception message
*/
public function getMessage ()
{
return $this -> data [ 'exception' ] -> getMessage ();
}
/**
* Gets the exception code .
*
* @ return int The exception code
*/
public function getCode ()
{
return $this -> data [ 'exception' ] -> getCode ();
}
/**
* Gets the status code .
*
* @ return int The status code
*/
public function getStatusCode ()
{
return $this -> data [ 'exception' ] -> getStatusCode ();
}
/**
* Gets the exception trace .
*
* @ return array The exception trace
*/
public function getTrace ()
{
return $this -> data [ 'exception' ] -> getTrace ();
}
/**
* { @ inheritdoc }
*/
public function getName ()
{
return 'exception' ;
}
}