Source for file jSoapRequest.class.php

Documentation is available at jSoapRequest.class.php

  1. <?php
  2. /**
  3. @package     jelix
  4. @subpackage  core_request
  5. @author      Sylvain de Vathaire
  6. @contributor Laurent Jouanneau
  7. @copyright   2008 Sylvain de Vathaire, 2011 Laurent Jouanneau
  8. @link        http://www.jelix.org
  9. @licence     GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
  10. */
  11.  
  12. /**
  13. * handle a soap call. The response has to be a soap response.
  14. @package  jelix
  15. @subpackage core_request
  16. */
  17. class jSoapRequest extends jRequest {
  18.  
  19.     public $type = 'soap';
  20.  
  21.     public $defaultResponseType = 'soap';
  22.  
  23.     public $authorizedResponseClass = 'jResponseSoap';
  24.  
  25.     public $soapMsg;
  26.  
  27.     function __construct(){  }
  28.  
  29.     /**
  30.      * Paramameters initalisation prior to request handling
  31.      */
  32.     function initService(){
  33.  
  34.        if(isset($_GET["service"]&& $_GET['service'!= ''){
  35.             list($module$action=  explode('~',$_GET["service"]);
  36.         }else{
  37.             throw new JException('jWSDL~errors.service.param.required');
  38.         }
  39.  
  40.         $this->params['module'$module;
  41.         $this->params['action'$action;
  42.  
  43.         if(isset($HTTP_RAW_POST_DATA&& ($HTTP_RAW_POST_DATA!='')){
  44.             $this->soapMsg = $HTTP_RAW_POST_DATA;
  45.         }else{
  46.             $this->soapMsg = file("php://input");
  47.             $this->soapMsg = implode(" "$this->soapMsg);
  48.         }
  49.  
  50.         $this->_initUrlData()//Need to be called manually before coordinator call of init because needed for the WSDL generation 
  51.     }
  52.  
  53.  
  54.     /**
  55.      * Overload of the init method to prevent calling twice _initUrlData
  56.      */
  57.     function init(){}
  58.  
  59.     protected function _initParams(){}
  60.  
  61.     /**
  62.     * Gets the value of a request parameter. If not defined, gets its default value.
  63.     * @param string  $name           the name of the request parameter
  64.     * @param mixed   $defaultValue   the default returned value if the parameter doesn't exists
  65.     * @param boolean $useDefaultIfEmpty true: says to return the default value if the parameter value is ""
  66.     * @return mixed the request parameter value
  67.     */
  68.     public function getParam($name$defaultValue=null$useDefaultIfEmpty=false){
  69.         if (!isset($this->params[$name])) {
  70.             return $defaultValue;
  71.         }
  72.         // we cannot use the empty() function because 0 returns true. And maybe we want 0
  73.         // as a normal value...
  74.         if (is_scalar($this->params[$name])) {
  75.             if ($useDefaultIfEmpty && trim($this->params[$name]== '' {
  76.                 return $defaultValue;
  77.             }
  78.             else {
  79.                 return $this->params[$name];
  80.             }
  81.         }
  82.         else{
  83.             // array or object
  84.             if $useDefaultIfEmpty && empty($this->params[$name]) ) {
  85.                 return $defaultValue;
  86.             }
  87.             else {
  88.                 return $this->params[$name];
  89.             }
  90.         }
  91.     }
  92. }

Documentation generated on Wed, 24 Sep 2014 22:02:21 +0200 by phpDocumentor 1.4.3