ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5
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 ()
 
- Public Member Functions inherited from Whoops\Handler\Handler
 setRun (Run $run)
 
 setInspector (Inspector $inspector)
 
 setException (Exception $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
 Return constants that can be returned from Handler::handle to message the handler walker. More...
 
const LAST_HANDLER = 0x20
 
const QUIT = 0x30
 
- 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 60 of file XmlResponseHandler.php.

References $data.

61  {
62  assert('is_array($data) || $node instanceof Traversable');
63 
64  foreach ($data as $key => $value) {
65  if (is_numeric($key)) {
66  // Convert the key to a valid string
67  $key = "unknownNode_". (string) $key;
68  }
69 
70  // Delete any char not allowed in XML element names
71  $key = preg_replace('/[^a-z0-9\-\_\.\:]/i', '', $key);
72 
73  if (is_array($value)) {
74  $child = $node->addChild($key);
75  self::addDataToNode($child, $value);
76  } else {
77  $value = str_replace('&', '&', print_r($value, true));
78  $node->addChild($key, $value);
79  }
80  }
81 
82  return $node;
83  }
$data

◆ 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:

◆ handle()

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

Implements Whoops\Handler\HandlerInterface.

Definition at line 41 of file XmlResponseHandler.php.

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

42  {
43  $response = array(
44  'error' => Formatter::formatExceptionAsDataArray(
45  $this->getInspector(),
46  $this->addTraceToOutput()
47  ),
48  );
49 
50  echo $this->toXml($response);
51 
52  return Handler::QUIT;
53  }
static toXml($data)
The main function for converting to an XML document.
+ 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 91 of file XmlResponseHandler.php.

References $data.

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

92  {
93  assert('is_array($data) || $node instanceof Traversable');
94 
95  $node = simplexml_load_string("<?xml version='1.0' encoding='utf-8'?><root />");
96 
97  return self::addDataToNode($node, $data)->asXML();
98  }
$data
+ 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: