From f7ca8c7ac8718899c1ab36513aaf3853a4514816 Mon Sep 17 00:00:00 2001 From: wei <> Date: Fri, 12 Jan 2007 05:53:43 +0000 Subject: Fixed a number of SOAP bugs. --- .../protected/pages/Services/SoapService.page | 63 +++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) (limited to 'demos/quickstart') diff --git a/demos/quickstart/protected/pages/Services/SoapService.page b/demos/quickstart/protected/pages/Services/SoapService.page index 59042156..04dea07a 100644 --- a/demos/quickstart/protected/pages/Services/SoapService.page +++ b/demos/quickstart/protected/pages/Services/SoapService.page @@ -64,9 +64,70 @@ In order for the WSDL generator to generate WSDL for a SOAP service, the provide
  • return value: @return value-type description
  • -Valid parameter and return types include: string, int, boolean, float, array, mixed, etc. You may also specify a class name as the type, which translates into a complex SOAP type. +Valid parameter and return types include: string, int, boolean, float, array, mixed, etc. You may also specify a class name as the type, which translates into a complex SOAP type. For example, for a complex type Contact

    + +class Contact +{ + /** + * @var string $name + * @soapproperty + */ + public $name; + + /** + * @var Address $address + * @soapproperty + */ + public $address; +} + +class Address +{ + /** + * @var string city + * @soapproperty + */ + public $city; +} + +class ContactManager +{ + /** + * @return Contact[] an array of contacts + * @soapmethod + */ + function getAllContacts() + { + return array(new Contact); + } + + /** + * @return Contact one contact + * @soapmethod + */ + function getContact($name) + { + return new Contact; + } +} + +

    For a complex soap object, the properties of the object are specified with +@soapproperty keyword in the property phpdocs. Furthermore, the +propert's type name must be specified as @var type $name where type + is any valid type in mentioned earlier. +An array of complex objects can also be returned by adding a pair of +enclosing square brackets after the type name. For example, to return an +array of Contact type, we define @return Contact[] .... +

    + +
    Tip: +A very useful tool to test out your web services is the free tool +WebServiceStudio 2.0. It can invoke webmethods interactively. The user can provide a WSDL endpoint. On clicking button Get the tool fetches the WSDL, generates .NET proxy from the WSDL and displays the list of methods available. The user can choose any method and provide the required input parameters. +The tool requires a MS .NET runtime to be installed. +
    +

    TSoapService may be configured and customized in several ways. In the example above, the <soap> element actually specifies a SOAP service using the default TSoapServer implementation. Attributes in <soap> are passed to TSoapServer as its initial property values. For example, the provider attribute initializes the Provider property of TSoapServer. By setting SessionPersistent to be true in <soap> element, the provider instance will persist within the user session. You may develop your own SOAP server class and use it by specifying the class attribute of <soap>.

    -- cgit v1.2.3