As a developer, if you want to write a webservice interface or call someone else's webservice interface, you first need to understand what a webservice is. To put it simply, WebService is a service opened by some sites, or it can be a Service developed by you, that is, some methods. Through the URL, you specify a method name and make a request. The service (method) in the site will receive your request. request, do some processing based on the passed parameters, and then return the processed results to you in XML form. Your program will parse the XML data, then display it or do otheroperate.
You need to understand when writing webservice: the basic Web Services platform is XML + HTTP; in addition, the elements of the Web services platform: SOAP (SimpleObjectAccess Protocol), UDDI (Universal Description, Discovery and integration), WSDL (Web services description language); any webservice includes a client and a server. The following uses examples to explain how to use PHP to write a webservice interface for others to call:
First, you need to create a .wsdl file, so how does PHP create this file. There are two ways to achieve this, one is to generate it directly using the zend studio tool; the other is to use PHP to automatically generate the wsdl file based on SoapDiscovery.class.php. Which one you choose depends on your own situation. I generally use the former. This comparison fast. Let's write down how to generate a wsdl file using a class. First, you need to download the class file from the Internet, and then after importing the class file, look at the following code:
creat_wsdl.php
The code is as follows:
<?php include_once('Service.php'); include_once('SoapDiscovery.class.php'); $wsdl=new SoapDiscovery('Service','soap');//第一参数为类名,也是生成wsdl的文件名Service.wsdl,第二个参数是服务的名字可以随便写 $wsdl->getWSDL(); ?>
Run the creat_wsdl.php file in this way to generate the wsdl file. Is it very simple?
Any webservice needs to be bound to an implementation class. In other words, the real function of the wsdl file called by others is to implement the methods in the class; the following code is the server class file
Service.php
The code is as follows:
<?php class Service { public function Hello() { echo 'hello good'; } public function Add($a,$b) { return $a+$b; } } $server=SoapServer('Service.php',array('soap_version'=>soap_1_2)); $server->setClass('Service');//注册Service类的所有方法 $server->handle();//处理请求 ?>
After writing the server and wsdl files, you need to call them from the client. Please see the client calling code:
client.php
The code is as follows:
<?php ini_set('soap.wsdl_cache_enabled','0');//关闭缓存 $soap=new SoapClient('http://127.0.0.1/soap/Service.php?wsdl'); echo $soap->Add(1,2); //echo $soap->_soapCall('Add',array(1,2))//或者这样调用也可以 ?>
This is a complete example code for writing the webservice interface and calling it. I hope It will be helpful for the phper that needs it;
Then calling other people’s webservice interface is the code written by client.php.
The above is the detailed content of Detailed explanation of creating and calling webservice interface instances in PHP. For more information, please follow other related articles on the PHP Chinese website!