Source for file jResponseJsonrpc.class.php

Documentation is available at jResponseJsonrpc.class.php

  1. <?php
  2. /**
  3. @package     jelix
  4. @subpackage  core_response
  5. @author      Laurent Jouanneau
  6. @contributor Loic Mathaud
  7. @copyright   2005-2009 Laurent Jouanneau
  8. @copyright   2007 Loic Mathaud
  9. @link        http://www.jelix.org
  10. @licence     GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
  11. */
  12.  
  13. /**
  14. * Response for jsonrpc protocol
  15. @package  jelix
  16. @subpackage core_response
  17. @see jResponse
  18. @see http://json-rpc.org/wiki/specification
  19. */
  20.  
  21. final class jResponseJsonRpc extends jResponse {
  22.     /**
  23.     * @var string 
  24.     */
  25.     protected $_type = 'jsonrpc';
  26.     protected $_acceptSeveralErrors=false;
  27.  
  28.     /**
  29.      * PHP data you want to return
  30.      * @var mixed 
  31.      */
  32.     public $response = null;
  33.  
  34.  
  35.     public function output(){
  36.         global $gJCoord;
  37.  
  38.         $this->_httpHeaders['Content-Type'"application/json";
  39.         if($gJCoord->request->jsonRequestId !== null){
  40.             $content jJsonRpc::encodeResponse($this->response$gJCoord->request->jsonRequestId);
  41.             if($this->hasErrors()) return false;
  42.             $this->_httpHeaders['Content-length'strlen($content);
  43.             $this->sendHttpHeaders();
  44.             echo $content;
  45.         }else{
  46.             if($this->hasErrors()) return false;
  47.             $this->_httpHeaders['Content-length''0';
  48.             $this->sendHttpHeaders();
  49.         }
  50.         return true;
  51.     }
  52.  
  53.     public function outputErrors(){
  54.         global $gJCoord;
  55.         if(count($gJCoord->errorMessages)){
  56.             $e $gJCoord->errorMessages[0];
  57.             $errorCode $e[1];
  58.             $errorMessage '['.$e[0].'] '.$e[2].' (file: '.$e[3].', line: '.$e[4].')';
  59.             if ($e[5])
  60.                $errorMessage .= "\n".$e[5];
  61.         }else{
  62.             $errorMessage 'Unknown error';
  63.             $errorCode = -1;
  64.         }
  65.         $this->clearHttpHeaders();
  66.         $this->_httpStatusCode ='500';
  67.         $this->_httpStatusMsg ='Internal Server Error';
  68.         $this->_httpHeaders['Content-Type'"application/json";
  69.         $content jJsonRpc::encodeFaultResponse($errorCode,$errorMessage$gJCoord->request->jsonRequestId);
  70.         $this->_httpHeaders['Content-length'strlen($content);
  71.         $this->sendHttpHeaders();
  72.         echo $content;
  73.     }
  74. }

Documentation generated on Thu, 19 Sep 2013 00:06:44 +0200 by phpDocumentor 1.4.3