コード例 #1
0
 function testHandleException()
 {
     $server = new Zend_Json_Server();
     $server->addFunction('Zend_Json_Server_TestFunc10');
     ob_start();
     $server->handle(array('method' => 'Zend_Json_Server_TestFunc10'));
     ob_end_clean();
     ob_start();
     $server->fault(new Exception('An error occurred.', 404));
     $result = ob_get_clean();
     $this->assertEquals('{"msg" : "An error occurred.", "code" : 404}', $result, "Bad Response");
 }
コード例 #2
0
 /**
  * handle exceptions
  * 
  * @param Zend_Json_Server $server
  * @param Zend_Json_Server_Request_Http $request
  * @param Exception $exception
  * @return Zend_Json_Server_Response
  */
 protected function _handleException($server, $request, $exception)
 {
     $exceptionData = method_exists($exception, 'toArray') ? $exception->toArray() : array();
     $exceptionData['message'] = htmlentities($exception->getMessage(), ENT_COMPAT, 'UTF-8');
     $exceptionData['code'] = $exception->getCode();
     if (Tinebase_Core::isLogLevel(Zend_Log::NOTICE)) {
         Tinebase_Core::getLogger()->notice(__METHOD__ . '::' . __LINE__ . ' ' . get_class($exception) . ' -> ' . $exception->getMessage());
     }
     if (Tinebase_Core::getConfig()->suppressExceptionTraces !== TRUE) {
         $exceptionData['trace'] = $this->_getTraceAsArray($exception);
         $this->_logExceptionTrace($exception);
     }
     $server->fault($exceptionData['message'], $exceptionData['code'], $exceptionData);
     $response = $server->getResponse();
     if (null !== ($id = $request->getId())) {
         $response->setId($id);
     }
     if (null !== ($version = $request->getVersion())) {
         $response->setVersion($version);
     }
     return $response;
 }