/**
  * Generate a server fault
  *
  * Note that the arguments are the reverse of those used by SoapFault.
  *
  * Moodle note: the difference with the Zend server is that we throw a SoapFault exception
  * with the debuginfo integrated in the exception message when DEBUG >= NORMAL
  *
  * If an exception is passed as the first argument, its message and code
  * will be used to create the fault object if it has been registered via
  * {@Link registerFaultException()}.
  *
  * @link   http://www.w3.org/TR/soap12-part1/#faultcodes
  * @param  string|Exception $fault
  * @param  string $code SOAP Fault Codes
  * @return SoapFault
  */
 public function fault($fault = null, $code = "Receiver")
 {
     //intercept any exceptions with debug info and transform it in Moodle exception
     if ($fault instanceof Exception) {
         //add the debuginfo to the exception message if debuginfo must be returned
         if (debugging() and isset($fault->debuginfo)) {
             $fault = new SoapFault('Receiver', $fault->getMessage() . ' | DEBUG INFO: ' . $fault->debuginfo);
         }
     }
     return parent::fault($fault, $code);
 }
示例#2
0
 /**
  * Generate a server fault
  *
  * Note that the arguments are reverse to those of SoapFault.
  *
  * note: the difference with the Zend server is that we throw a SoapFault exception
  * with the debuginfo integrated to the exception message when DEBUG >= NORMAL
  *
  * If an exception is passed as the first argument, its message and code
  * will be used to create the fault object if it has been registered via
  * {@Link registerFaultException()}.
  *
  * @link   http://www.w3.org/TR/soap12-part1/#faultcodes
  * @param  string|Exception $fault
  * @param  string $code SOAP Fault Codes
  * @return SoapFault
  */
 public function fault($fault = null, $code = "Receiver")
 {
     //run the zend code that clean/create a soapfault
     $soapfault = parent::fault($fault, $code);
     //intercept any exceptions and add the errorcode and debuginfo (optional)
     $actor = null;
     $details = null;
     if ($fault instanceof Exception) {
         //add the debuginfo to the exception message if debuginfo must be returned
         if (ws_debugging() and isset($fault->debuginfo)) {
             $details = $fault->debuginfo;
         }
     }
     return new SoapFault($soapfault->faultcode, $soapfault->getMessage() . ' | ERRORCODE: ' . (isset($fault->errorcode) ? $fault->errorcode : $code), $actor, $details);
 }
示例#3
0
 /**
  * @group ZF-3958
  */
 public function testFaultWithIntegerFailureCodeDoesNotBreakClassSoapFault()
 {
     $server = new Zend_Soap_Server();
     $fault = $server->fault("Faultmessage!", 5000);
     $this->assertTrue($fault instanceof SOAPFault);
 }