ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
Whoops\Handler\XmlResponseHandler Class Reference

Catches an exception and converts it to an XML response. More...

+ Inheritance diagram for Whoops\Handler\XmlResponseHandler:
+ Collaboration diagram for Whoops\Handler\XmlResponseHandler:

Public Member Functions

 addTraceToOutput ($returnFrames=null)
 
 handle ()
 
 contentType ()
 
- Public Member Functions inherited from Whoops\Handler\Handler
 setRun (RunInterface $run)
 
 setInspector (Inspector $inspector)
 
 setException ($exception)
 

Static Private Member Functions

static addDataToNode (\SimpleXMLElement $node, $data)
 
static toXml ($data)
 The main function for converting to an XML document. More...
 

Private Attributes

 $returnFrames = false
 

Additional Inherited Members

- Data Fields inherited from Whoops\Handler\Handler
const DONE = 0x10
 
const LAST_HANDLER = 0x20
 The Handler has handled the Throwable in some way, and wishes to skip any other Handler. More...
 
const QUIT = 0x30
 The Handler has handled the Throwable in some way, and wishes to quit/stop execution. More...
 
- Protected Member Functions inherited from Whoops\Handler\Handler
 getRun ()
 
 getInspector ()
 
 getException ()
 

Detailed Description

Catches an exception and converts it to an XML response.

Additionally can also return exception frames for consumption by an API.

Definition at line 17 of file XmlResponseHandler.php.

Member Function Documentation

◆ addDataToNode()

static Whoops\Handler\XmlResponseHandler::addDataToNode ( \SimpleXMLElement  $node,
  $data 
)
staticprivate
Parameters
SimpleXMLElement$nodeNode to append data to, will be modified in place
array | \Traversable$data
Returns
SimpleXMLElement The modified node, for chaining

Definition at line 68 of file XmlResponseHandler.php.

References $data, and $key.

69  {
70  assert('is_array($data) || $node instanceof Traversable');
71 
72  foreach ($data as $key => $value) {
73  if (is_numeric($key)) {
74  // Convert the key to a valid string
75  $key = "unknownNode_". (string) $key;
76  }
77 
78  // Delete any char not allowed in XML element names
79  $key = preg_replace('/[^a-z0-9\-\_\.\:]/i', '', $key);
80 
81  if (is_array($value)) {
82  $child = $node->addChild($key);
83  self::addDataToNode($child, $value);
84  } else {
85  $value = str_replace('&', '&', print_r($value, true));
86  $node->addChild($key, $value);
87  }
88  }
89 
90  return $node;
91  }
$key
Definition: croninfo.php:18
$data
Definition: bench.php:6

◆ addTraceToOutput()

Whoops\Handler\XmlResponseHandler::addTraceToOutput (   $returnFrames = null)
Parameters
bool | null$returnFrames
Returns
bool|$this

Definition at line 28 of file XmlResponseHandler.php.

References Whoops\Handler\XmlResponseHandler\$returnFrames.

Referenced by Whoops\Handler\XmlResponseHandler\handle().

29  {
30  if (func_num_args() == 0) {
31  return $this->returnFrames;
32  }
33 
34  $this->returnFrames = (bool) $returnFrames;
35  return $this;
36  }
+ Here is the caller graph for this function:

◆ contentType()

Whoops\Handler\XmlResponseHandler::contentType ( )
Returns
string

Definition at line 58 of file XmlResponseHandler.php.

59  {
60  return 'application/xml';
61  }

◆ handle()

Whoops\Handler\XmlResponseHandler::handle ( )
Returns
int

Implements Whoops\Handler\HandlerInterface.

Definition at line 41 of file XmlResponseHandler.php.

References $response, Whoops\Handler\XmlResponseHandler\addTraceToOutput(), Whoops\Handler\Handler\getInspector(), Whoops\Handler\Handler\QUIT, and Whoops\Handler\XmlResponseHandler\toXml().

42  {
43  $response = [
44  'error' => Formatter::formatExceptionAsDataArray(
45  $this->getInspector(),
46  $this->addTraceToOutput()
47  ),
48  ];
49 
50  echo $this->toXml($response);
51 
52  return Handler::QUIT;
53  }
const QUIT
The Handler has handled the Throwable in some way, and wishes to quit/stop execution.
Definition: Handler.php:31
static toXml($data)
The main function for converting to an XML document.
$response
+ Here is the call graph for this function:

◆ toXml()

static Whoops\Handler\XmlResponseHandler::toXml (   $data)
staticprivate

The main function for converting to an XML document.

Parameters
array | \Traversable$data
Returns
string XML

Definition at line 99 of file XmlResponseHandler.php.

References $data.

Referenced by Whoops\Handler\XmlResponseHandler\handle().

100  {
101  assert('is_array($data) || $node instanceof Traversable');
102 
103  $node = simplexml_load_string("<?xml version='1.0' encoding='utf-8'?><root />");
104 
105  return self::addDataToNode($node, $data)->asXML();
106  }
$data
Definition: bench.php:6
+ Here is the caller graph for this function:

Field Documentation

◆ $returnFrames

Whoops\Handler\XmlResponseHandler::$returnFrames = false
private

The documentation for this class was generated from the following file: