<?php
// global exception handler
function reportExceptions ($code, $descr, $filename, $line)
{
// obey error_level set by system/user
if (!($code & error_reporting())) {
return;
}
// init a new error info object
$error = new MessageException($code, $descr, $filename, $line, "AMFPHP_RUNTIME_ERROR");
// add the error object to the body of the AMFObject
$amfbody = new MessageBody(NULL, $GLOBALS['amfphp']['lastMethodCall']);
MessageException::throwException($amfbody, $error);
//$amfbody->setResults($error);
if($GLOBALS['amfphp']['encoding'] == 'amf0' || $GLOBALS['amfphp']['encoding'] == 'amf3')
{
// build a new AMFObject
$amfout = new AMFObject("");
$amfout->addBody($amfbody);
// Add the trace headers we have so far while we're at it
debugFilter($amfout);
// create a new serializer
$serializer = new AMFSerializer();
// serialize the data
$data = $serializer->serialize($amfout);
// send the correct header
header('Content-type: application/x-amf');
// flush the amf data to the client.
print($data);
// kill the system after we find a single error
exit;
}
else
{
serializationAction($amfbody);
print($amfbody->getResults());
exit;
}
}
set_error_handler("reportExceptions");
?>