/**
  * Factory function for SoapRequest.
  *
  * @param string $content Content
  * @param string $version SOAP version
  *
  * @return BeSimple\SoapClient\SoapRequest
  */
 public static function create($content, $version)
 {
     $location = self::getCurrentUrl();
     /*
      * Work around missing header/php://input access in PHP cli webserver by
      * setting headers additionally as GET parameters and SOAP request body
      * explicitly as POST variable
      */
     if (php_sapi_name() == "cli-server") {
         $content = is_null($content) ? $_POST['request'] : $content;
         $action = $_GET[SoapMessage::SOAP_ACTION_HEADER];
         $contentType = $_GET[SoapMessage::CONTENT_TYPE_HEADER];
     } else {
         $content = is_null($content) ? file_get_contents("php://input") : $content;
         $action = isset($_SERVER[SoapMessage::SOAP_ACTION_HEADER]) ? $_SERVER[SoapMessage::SOAP_ACTION_HEADER] : null;
         $contentType = $_SERVER[SoapMessage::CONTENT_TYPE_HEADER];
     }
     $request = new SoapRequest();
     // $content is if unmodified from SoapClient not a php string type!
     $request->setContent((string) $content);
     $request->setLocation($location);
     $request->setAction($action);
     $request->setVersion($version);
     $request->setContentType($contentType);
     return $request;
 }
Esempio n. 2
0
 /**
  * Custom handle method to be able to modify the SOAP messages.
  *
  * @param string $request Request string
  */
 public function handle($request = null)
 {
     // wrap request data in SoapRequest object
     $soapRequest = SoapRequest::create($request, $this->soapVersion);
     // handle actual SOAP request
     $soapResponse = $this->handle2($soapRequest);
     // send SOAP response to client
     $soapResponse->send();
 }
Esempio n. 3
0
 /**
  * Factory function for SoapRequest.
  *
  * @param string $content Content
  * @param string $version SOAP version
  *
  * @return BeSimple\SoapClient\SoapRequest
  */
 public static function create($content, $version)
 {
     $request = new SoapRequest();
     // $content is if unmodified from SoapClient not a php string type!
     $request->setContent((string) (null === $content ? file_get_contents("php://input") : $content));
     $request->setLocation(self::getCurrentUrl());
     $request->setAction(isset($_SERVER[SoapMessage::SOAP_ACTION_HEADER]) ? $_SERVER[SoapMessage::SOAP_ACTION_HEADER] : null);
     $request->setVersion($version);
     if (isset($_SERVER[SoapMessage::CONTENT_TYPE_HEADER])) {
         $request->setContentType($_SERVER[SoapMessage::CONTENT_TYPE_HEADER]);
     } elseif (isset($_SERVER[SoapMessage::HTTP_CONTENT_TYPE_HEADER])) {
         $request->setContentType($_SERVER[SoapMessage::HTTP_CONTENT_TYPE_HEADER]);
     }
     return $request;
 }
Esempio n. 4
0
 /**
  * Custom handle method to be able to modify the SOAP messages.
  *
  * @param string $request Request string
  */
 public function handle($request = null)
 {
     // wrap request data in SoapRequest object
     $soapRequest = SoapRequest::create($request, $this->soapVersion);
     // handle actual SOAP request
     try {
         $soapResponse = $this->handle2($soapRequest);
     } catch (\SoapFault $fault) {
         // issue an error to the client
         $this->fault($fault->faultcode, $fault->faultstring);
     }
     // send SOAP response to client
     $soapResponse->send();
 }
Esempio n. 5
0
 /**
  * Factory function for SoapRequest.
  *
  * @param string $content Content
  * @param string $version SOAP version
  *
  * @return BeSimple\SoapClient\SoapRequest
  */
 public static function create($content, $version)
 {
     $content = is_null($content) ? file_get_contents("php://input") : $content;
     $location = self::getCurrentUrl();
     $request = new SoapRequest();
     // $content is if unmodified from SoapClient not a php string type!
     $request->setContent((string) $content);
     $request->setLocation($location);
     $request->setVersion($version);
     switch ($version) {
         case 1:
             $request->setAction($_SERVER[SoapMessage::SOAP_ACTION_HEADER]);
             break;
         case 2:
         default:
             $request->setContentType($_SERVER[SoapMessage::CONTENT_TYPE_HEADER]);
     }
     return $request;
 }