|Classes of Jorge Castro||>||Cloud King PHP SOAP Server||>||README.md||>||Download|
A SOAP Server Engine for PHP 5.6 and higher.
It supports SOAP 1.1, 1.2 or both. JAVA usually supports 1.1, C# supports both.
Example of the UI
Why we need Web Service SOAP?
Because some legacy projects are still using it. SOAP it is also declarative (instead of REST that lacks of a specification)
And why to use this library?
1.Creating a Definition
What is a definition class. It is a class that defined the name,namespace, functions and complex-types defined by the web service.
In this example, we are defining a simple function : function hello($param);
We will explain more about it later.
2. Running the first time.
Let's call the definition as follow
Right now, this web service doesn't run because we are not associate the definition with a real function. The functions are defined in a class SERVICE CLASS.
Here you have the definition of the services and the information about it. If you want to disable it, then you could disable the $GUI, or lower the VERBOSE to 0.
3. Calling the Service
Right now ,the service is not complete but you can test it. If you click in WSDL description, it will show a huge xml file. You could download it or copy the address (ended with ?wsdl)
In this example, we will use the program SOAPUI (there is a free and paid version)
Open the SOAPUI (or the program that you want to use), and paste the url of the wsdl (obtained in the previous step) and runs it.
And it will show all the methods defined. In our case, there is a single function called "hello". Then, you can run it.
If you run it, it will fail. Why? It is because we are yet to define the service class.
4. Service class
In our website, there is a link called SOURCE GENERATION. Click on it and it will show the next screen.
You can generate a c# code, and both php code (from server and client). We need to generate the server source. If you click on the View PHP Server Source, you can look at the code. However, you can also generate it directly. However, for that, you will need to set the folder
Let's modify the file of the step 2
And if we refresh the website, it will show
So, you could generate 1 class and 1 interface automatically. Click on it, and it will generate both files
It will generate the folder service and 2 files
___ ? ExampleHelloService.php (our service class)
___ ? IExampleHelloService.php (the interface class)
5. Editing the Service Class.
This class is half-generated. We could edit our operations inside this class, so let's change our code.
6. Editing our service
Let's modify our service defined in the step 2 again and now, we must indicate our service class (created in the step 4)
And let's run it again using SOAPUI
And now, we have the service up and running.
You could later disable the GUI
Parameters are used to indicate the arguments of a function, the return value of a function or the fields of a complex structure.
Defining a single parameter.
> param(name of the parameter, type , reference, required , description)
Defining an array of parameters
It is also possible to define an array (list) of parameters.
> paramList(name of the parameter, type , reference, required , description )
> Note: This function defines automatically a complex type called ArrayOf\<name of the parameter\> . If the complex type exists (complex with the same name), then it uses it instead of create a new one.
It is also possible to define a complex type. A complex type is used when we need to define a model or structure.
> addType( name of the type , [ parameters ] , description)
Example: Defining a complex type of an invoice with the invoice detail.