Source for file jJsonRpc.class.php

Documentation is available at jJsonRpc.class.php

  1. <?php
  2. /**
  3. @package     jelix
  4. @subpackage  utils
  5. @author      Laurent Jouanneau
  6. @contributor Julien ISSLER
  7. @copyright   2005-2007 Laurent Jouanneau
  8. @copyright   2007 Julien Issler
  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.  * object which encode and decode a jsonrpc request and response
  15.  * @package    jelix
  16.  * @subpackage utils
  17.  * @link http://json-rpc.org/index.xhtml
  18.  */
  19. class jJsonRpc {
  20.  
  21.     private function __construct(){}
  22.  
  23.     /**
  24.      * decode a request of json xmlrpc
  25.      * @param string $content 
  26.      * @return mixed 
  27.      */
  28.     public static function decodeRequest($content){
  29.         // {"method":.. , "params":.. , "id":.. }
  30.         $obj json_decode($content,true);
  31.         return $obj;
  32.     }
  33.  
  34.     /**
  35.      * create a request content for a jsonrpc call
  36.      * @param string $methodname method of the jsonrcp web service
  37.      * @param array $params parameters for the methods
  38.      * @return string jsonrcp request content
  39.      */
  40.     public static function encodeRequest($methodname$params$id=1){
  41.  
  42.         return '{"method":"'.$methodname.'","params":'.json_encode($params).',"id":'.json_encode($id).'}';
  43.  
  44.     }
  45.  
  46.     /**
  47.      * decode a jsonrpc response
  48.      * @param string $content 
  49.      * @return mixed decoded content
  50.      */
  51.     public static function decodeResponse($content){
  52.         // {result:.. , error:.. , id:.. }
  53.         return json_decode($content,true);
  54.  
  55.     }
  56.  
  57.     /**
  58.      * encode a jsonrpc response
  59.      * @param array $params  returned value
  60.      * @return string encoded response
  61.      */
  62.     public static function encodeResponse($params$id=1){
  63.         return '{"result":'.json_encode($params).',"error":null,"id":'.json_encode($id).'}';
  64.     }
  65.  
  66.     /**
  67.      * encode a jsonrpc error response
  68.      * @param int $code code error
  69.      * @param string $message error message
  70.      * @return string encoded response
  71.      */
  72.     public static function encodeFaultResponse($code$message$id=1){
  73.         return '{"result":null,"error":{"code": '.json_encode($code).', "string":'.json_encode($message).' },"id":'.json_encode($id).'}';
  74.     }
  75. }

Documentation generated on Thu, 22 Mar 2012 22:16:25 +0100 by phpDocumentor 1.4.3