PhpRiot
Download Article
Download this article or the entire “Zend Framework 101” series with all listings and files.




More information
Related Books
Zend Framework 1.8 Web Application Development

Zend Framework 1.8 Web Application Development

Design, develop, and deploy feature-rich PHP web applications with this MVC framework...

Pro Zend Framework Techniques: Build a Full CMS Project (Expert's Voice)

Pro Zend Framework Techniques: Build a Full CMS Project (Expert's Voice)

The Zend Framework is a truly amazing PHP–based web application development framework and...
PhpRiot Newsletter
Your Email Address:

More information

Zend Framework 101: Zend_Soap

Create Web Service Methods

Our first step in creating a web service is to create a single PHP class that contains the methods you want people to be able to execute using SOAP. Each public method that belongs to this class is a method that can be executed your web service.

Tip: If you want public methods in your class that aren't auto-discovered (and thereby included in your WSDL), prefix the function name with a double-underscore. For instance, public function __myHiddenPublicFunction() { … }.

Each method in this class must be documented using the PhpDoc syntax, for the purposes of dynamically generating the WSDL file. At minimum this requires specifying input parameters (using @param) and the return data type (using @return). The reason for doing this is for generation of the WSDL file.

Let's being by creating a simple class with two methods. The first method (getDate()) will return the current date and time of the server. This method has no arguments and returns a string.

The second method (getAgeString()) accepts a name and an age and returns a nicely formatted string using these values. This method has a string argument and an integer argument and returns a string.

Listing 1 The PHP class with our web service methods (MyWebService.php)
<?php
    /**
     * Web service methods
     */
    class MyWebService
    {
        /**
         * Get the server date and time
         *
         * @return  string
         */
        public function getDate()
        {
            return date('c');
        }
 
 
        /**
         * Get a nicely formatted string of a person's age
         *
         * @param   string  $name   The name of a person
         * @param   int     $age    The age of a person
         * @return  string
         */
        public function getAgeString($name, $age)
        {
            return sprintf('%s is %d years old', $name, $age);
        }
    }
?>

In This Article