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-2010 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.  
  27.     /**
  28.      * PHP data you want to return
  29.      * @var mixed 
  30.      */
  31.     public $response = null;
  32.  
  33.  
  34.     public function output(){
  35.         
  36.         if($this->_outputOnlyHeaders){
  37.             $this->sendHttpHeaders();
  38.             return true;
  39.         }
  40.         
  41.         $this->_httpHeaders['Content-Type'"application/json";
  42.         $req jApp::coord()->request;
  43.         if($req->jsonRequestId !== null){
  44.             $content jJsonRpc::encodeResponse($this->response$req->jsonRequestId);
  45.             $this->_httpHeaders['Content-length'strlen($content);
  46.             $this->sendHttpHeaders();
  47.             echo $content;
  48.         }
  49.         else {
  50.             $this->_httpHeaders['Content-length''0';
  51.             $this->sendHttpHeaders();
  52.         }
  53.         return true;
  54.     }
  55.  
  56.     public function outputErrors(){
  57.         $coord jApp::coord();
  58.         $e $coord->getErrorMessage();
  59.         if ($e{
  60.             $errorCode $e->getCode();
  61.             if ($errorCode 5000)
  62.                 $errorMessage $e->getMessage();
  63.             else
  64.                 $errorMessage $coord->getGenericErrorMessage();
  65.         }
  66.         else {
  67.             $errorCode = -1;
  68.             $errorMessage $coord->getGenericErrorMessage();
  69.         }
  70.         $this->clearHttpHeaders();
  71.         $this->_httpStatusCode ='500';
  72.         $this->_httpStatusMsg ='Internal Server Error';
  73.         $this->_httpHeaders['Content-Type'"application/json";
  74.         $content jJsonRpc::encodeFaultResponse($errorCode$errorMessage$coord->request->jsonRequestId);
  75.         $this->_httpHeaders['Content-length'strlen($content);
  76.         $this->sendHttpHeaders();
  77.         echo $content;
  78.     }
  79. }

Documentation generated on Mon, 26 Oct 2015 21:55:39 +0100 by phpDocumentor 1.4.3