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-2011 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.         return '{"method":"'.$methodname.'","params":'.json_encode($params).',"id":'.json_encode($id).'}';
  42.     }
  43.  
  44.     /**
  45.      * decode a jsonrpc response
  46.      * @param string $content 
  47.      * @return mixed decoded content
  48.      */
  49.     public static function decodeResponse($content){
  50.         // {result:.. , error:.. , id:.. }
  51.         return json_decode($content,true);
  52.     }
  53.  
  54.     /**
  55.      * encode a jsonrpc response
  56.      * @param array $params  returned value
  57.      * @return string encoded response
  58.      */
  59.     public static function encodeResponse($params$id=1){
  60.         return '{"result":'.json_encode($params).',"error":null,"id":'.json_encode($id).'}';
  61.     }
  62.  
  63.     /**
  64.      * encode a jsonrpc error response
  65.      * @param int $code code error
  66.      * @param string $message error message
  67.      * @return string encoded response
  68.      */
  69.     public static function encodeFaultResponse($code$message$id=1){
  70.         return '{"result":null,"error":{"code": '.json_encode($code).', "string":'.json_encode($message).' },"id":'.json_encode($id).'}';
  71.     }
  72. }

Documentation generated on Mon, 19 Sep 2011 14:13:13 +0200 by phpDocumentor 1.4.3