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-2007 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.         }else{
  60.             $errorMessage 'Unknown error';
  61.             $errorCode = -1;
  62.         }
  63.         $this->clearHttpHeaders();
  64.         $this->_httpStatusCode ='500';
  65.         $this->_httpStatusMsg ='Internal Server Error';
  66.         $this->_httpHeaders['Content-Type'"application/json";
  67.         $content jJsonRpc::encodeFaultResponse($errorCode,$errorMessage$gJCoord->request->jsonRequestId);
  68.         $this->_httpHeaders['Content-length'strlen($content);
  69.         $this->sendHttpHeaders();
  70.         echo $content;
  71.     }
  72. }
  73.  
  74. ?>

Documentation generated on Wed, 07 Sep 2011 13:47:46 +0200 by phpDocumentor 1.4.3