- Home
- About
- Testimonials
- Demos
- Download
- Documentation
- Blogs
- Forum
- Support

Packages: default System System.Caching System.Collections System.Data System.Data.ActiveRecord System.Data.ActiveRecord.Relations System.Data.ActiveRecord.Scaffold System.Data.ActiveReecord.Scaffold.InputBuilder System.Data.Commom.Sqlite System.Data.Common System.Data.Common.Mssql System.Data.Common.Mysql System.Data.Common.Oracle System.Data.Common.Pgsql System.Data.Common.Sqlite System.Data.DataGateway System.Data.SqlMap System.Data.SqlMap.Configuration System.Data.SqlMap.Statements System.Exceptions System.I18N System.IO System.Security System.Util System.Web System.Web.Services System.Web.UI System.Web.UI.ActiveControls System.Web.UI.WebControls System.Web.UI.WebControls.assets System.Xml Classes: IFeedContentProvider TFeedService TJsonResponse TJsonService TPageConfiguration TPageService TSoapServer TSoapService |
Keyword
# Class TSoapService
    TComponent
       |
       --TApplicationComponent
          |
          --TService
             |
             --TSoapService
TSoapService class TSoapService processes SOAP requests for a PRADO application. TSoapService requires PHP SOAP extension to be loaded. TSoapService manages a set of SOAP providers. Each SOAP provider is a class that implements a set of SOAP methods which are exposed to SOAP clients for remote invocation. TSoapService generates WSDL automatically for the SOAP providers by default. To use TSoapService, configure it in the application specification like following:

       <services>
         <service id="soap" class="System.Web.Services.TSoapService">
           <soap id="stockquote" provider="MyStockQuote" />
         </service>
       </services>
The above example specifies a single SOAP provider named "stockquote" whose class is "MyStockQuote". A SOAP client can then obtain the WSDL for this provider via the following URL:

       http://hostname/path/to/index.php?soap=stockquote.wsdl
The WSDL for the provider class "MyStockQuote" is generated based on special comment tags in the class. In particular, if a class method's comment contains the keyword "@soapmethod", it is considered to be a SOAP method and will be exposed to SOAP clients. For example,

       class MyStockQuote {
          / **
           * @param string $symbol the stock symbol
           * @return float the stock price
           * @soapmethod
           * /
          public function getQuote($symbol) {...}
       }
With the above SOAP provider, a typical SOAP client may call the method "getQuote" remotely like the following:

       $client=new SoapClient("http://hostname/path/to/index.php?soap=stockquote.wsdl");
       echo $client->getQuote("ibm");
Each <soap> element in the application specification actually configures the properties of a SOAP server which defaults to TSoapServer. Therefore, any writable property of TSoapServer may appear as an attribute in the <soap> element. For example, the "provider" attribute refers to the TSoapServer::setProvider property of TSoapServer. The following configuration specifies that the SOAP server is persistent within the user session (that means a MyStockQuote object will be stored in session)

       <services>
         <service id="soap" class="System.Web.Services.TSoapService">
           <soap id="stockquote" provider="MyStockQuote" SessionPersistent="true" />
         </service>
       </services>
You may also use your own SOAP server class by specifying the "class" attribute of <soap>. Since: 3.1 Author: Knut Urdalen <knut.urdalen@gmail.com> Author: Qiang Xue <qiang.xue@gmail.com>
Constructor Summary
public | __construct Constructor.
Method Summary
string | constructUrl ( string $serverID, array $getParams, boolean $encodeAmpersand, boolean $encodeGetItems) Constructs a URL with specified page path and GET parameters.
protected TSoapServer | createServer () Creates the requested SOAP server.
string | getConfigFile ()
boolean | getIsWsdlRequest ()
string | getServerID ()
void | init ( TXmlElement $config) Initializes this module.
protected void | resolveRequest () Resolves the request parameter.
void | run () Runs the service.
void | setConfigFile ( string $value)
Methods Inherited From TService
TService::getEnabled(), TService::getID(), TService::init(), TService::run(), TService::setEnabled(), TService::setID()
Methods Inherited From TApplicationComponent
TApplicationComponent::getApplication(), TApplicationComponent::getRequest(), TApplicationComponent::getResponse(), TApplicationComponent::getService(), TApplicationComponent::getSession(), TApplicationComponent::getUser(), TApplicationComponent::publishAsset(), TApplicationComponent::publishFilePath()
Methods Inherited From TComponent
TComponent::addParsedObject(), TComponent::attachEventHandler(), TComponent::canGetProperty(), TComponent::canSetProperty(), TComponent::createdOnTemplate(), TComponent::detachEventHandler(), TComponent::evaluateExpression(), TComponent::evaluateStatements(), TComponent::getEventHandlers(), TComponent::getSubProperty(), TComponent::hasEvent(), TComponent::hasEventHandler(), TComponent::hasProperty(), TComponent::raiseEvent(), TComponent::setSubProperty(), TComponent::__get(), TComponent::__set()
Constant Summary
string | CONFIG_FILE_EXT |
string | DEFAULT_SOAP_SERVER |
Constructor Details
## __construct
public __construct |
Constructor. Sets default service ID to 'soap'.
Method Details
## constructUrl
public string constructUrl | (string $serverID , array $getParams , boolean $encodeAmpersand , boolean $encodeGetItems )
Constructs a URL with specified page path and GET parameters.
Input
string | $serverID | soap server ID
array | $getParams | list of GET parameters, null if no GET parameters required
boolean | $encodeAmpersand | whether to encode the ampersand in URL, defaults to true.
boolean | $encodeGetItems | whether to encode the GET parameters (their names and values), defaults to true.
Output
string | URL for the page and GET parameters
Exception
## createServer
protected TSoapServer createServer | ()
Creates the requested SOAP server. The SOAP server is initialized with the property values specified in the configuration.
Output
TSoapServer | the SOAP server instance
Exception
## getConfigFile
public string getConfigFile | ()
Output
string | external configuration file. Defaults to null.
Exception
## getIsWsdlRequest
public boolean getIsWsdlRequest | ()
Output
boolean | whether this is a request for WSDL
Exception
## getServerID
public string getServerID | ()
Output
string | the SOAP server ID
Exception
## init
public void init | (TXmlElement $config )
Initializes this module. This method is required by the IModule interface.
Input
TXmlElement | $config | configuration for this module, can be null
Output
Exception
throws | TConfigurationException if ConfigFile is invalid.
## resolveRequest
protected void resolveRequest | ()
Resolves the request parameter. It identifies the server ID and whether the request is for WSDL.
Output
Exception
throws | THttpException if the server ID cannot be found
## run
public void run | ()
Runs the service. If the service parameter ends with '.wsdl', it will serve a WSDL file for the specified soap server. Otherwise, it will handle the soap request using the specified server.
Output
Exception
## setConfigFile
public void setConfigFile | (string $value )
Input
string | $value | external configuration file in namespace format. The file must be suffixed with '.xml'.
Output
Exception
throws | TInvalidDataValueException if the file is invalid.
Constant Details
### CONFIG_FILE_EXT #### Type: string #### Value: '.xml'
### DEFAULT_SOAP_SERVER #### Type: string #### Value: 'TSoapServer'