Herong's Tutorial Notes on Web Service and SOAP
Dr. Herong Yang, Version 3.00

PHP SOAP Extension Functions for Server Programs

This section describes PHP SOAP Extension functions for server side programs.

If you read the SOAP Extension reference page, you will see that SOAP Extension support SOAP server applications with a class called SoapServer, which offers the following functions:

  • SoapServer->__construct() - construct a new SoapServer object
  • SoapServer->addFunction() - Adds one or several functions those will handle SOAP requests
  • SoapServer->setClass() - Sets class which will handle SOAP requests
  • SoapServer->handle() - Handles a SOAP request
  • SoapServer->getFunctions() - Returns list of defined functions
  • ...

SoapServer->__construct() allows you to construct a new SoapServer object with the following syntax:

   __construct ( mixed wsdl [, array options] );

where "wsdl" specifies the URL of the WSDL document, and "options" specifies a list of options:

   'uri'          => "...", # the name space of the SOAP service
   'soap_version' => SOAP_1_1 |SOAP_1_2,
   'actor'        => "...", # the actor
   'encoding'     => "...", # the encoding name
   'classmap'     => "...", # a map of WSDL types to PHP classes
   ... 

Note that SoapServer object can be constructed in two modes, WSDL mode and non-WSDL mode:

   __construct( "..."[, array options] ); # WSDL mode, many options
      # are provided by the WSDL document
   __construct( null, array options ); # non-WSDL mode, 
      # 'uri' is a required option.

SoapServer->addFunction() allows you to add one or more functions to handle SOAP requests. The functions to be added are functions defined in the current PHP program file.

   $obj->addFunction("func"); # adds one function
   $obj->addFunction(array("func1",...)); # adds many functions
   $obj->addFunction(SOAP_FUNCTIONS_ALL); # adds all functions

SoapServer->setClass() allows you to all methods in the specified class to handle SOAP requests.

   $obj->setClass("cls");

SoapServer->handle() allows you to return the execution back the SOAP Extension to handle the incoming SOAP request.

   $obj->handle();

SoapServer->getFunctions() allows you to get a list of all functions that have been assigned to handle SOAP requests.

   array $a = $obj->getFunctions();

Sections in This Chapter

PHP SOAP Extension Functions for Server Programs

HelloServer.php - First SOAP Server Application

HelloServer12.php - SOAP 1.2 Server Application

HelloServerWsdl.php - SOAP 1.2 Server Application in WSDL Mode

Dr. Herong Yang, updated in 2007
PHP SOAP Extension Functions for Server Programs