Maison  >  Article  >  développement back-end  >  Explication détaillée de la création et de l'appel d'instances d'interface de service Web en PHP

Explication détaillée de la création et de l'appel d'instances d'interface de service Web en PHP

伊谢尔伦
伊谢尔伦original
2017-07-03 10:45:112779parcourir

En tant que développeur, si vous souhaitez écrire une interface de service Web ou appeler l'interface de service Web de quelqu'un d'autre, vous devez d'abord comprendre ce qu'est un service Web. Pour faire simple, WebService est un service ouvert par certains sites, ou il peut s'agir d'un service développé par vous, c'est-à-dire certaines méthodes, via l'URL, vous spécifiez un nom de méthode et faites une demande dans le service (méthode). le site recevra votre demande, effectuera un traitement en fonction des paramètres transmis, puis vous renverra les résultats traités sous forme XML. Votre programme analysera les données XML, puis les affichera ou en fera autres. Opération.

Vous devez comprendre lors de l'écriture d'un webservice : la plateforme de services Web de base est XML + HTTP de plus, les éléments de la plateforme de services Web : SOAP (Simple Object Access Protocol ; ), UDDI (Universal Description, Discovery and Integration), WSDL (Web Services Description Language) ; tout webservice comprend un client et un serveur. Ce qui suit utilise des exemples pour expliquer comment utiliser PHP pour écrire une interface de service Web que d'autres peuvent appeler :

Tout d'abord, vous devez créer un fichier .wsdl, alors comment PHP crée-t-il ce fichier . Il existe deux façons d'y parvenir, l'une consiste à le générer directement à l'aide de l'outil Zend Studio ; l'autre consiste à utiliser PHP pour générer automatiquement un fichier wsdl basé sur SoapDiscovery.class.php ; celle que vous choisissez dépend de votre propre situation. J'utilise généralement le premier rapidement. Écrivons comment générer un fichier wsdl à l'aide d'une classe. Tout d'abord, vous devez télécharger le fichier de classe depuis Internet, puis après avoir importé le fichier de classe, regardez le code suivant :
creat_wsdl.php

Le code est le suivant :

<?php
include_once(&#39;Service.php&#39;);
include_once(&#39;SoapDiscovery.class.php&#39;);
$wsdl=new SoapDiscovery(&#39;Service&#39;,&#39;soap&#39;);//第一参数为类名,也是生成wsdl的文件名Service.wsdl,第二个参数是服务的名字可以随便写
$wsdl->getWSDL();
?>


Exécutez le fichier creat_wsdl.php de cette manière pour générer un fichier wsdl. N'est-ce pas très simple ?
Tout service Web doit être lié à une classe d'implémentation. En d'autres termes, la vraie fonction du fichier wsdl appelé par d'autres est d'implémenter les méthodes dans la classe ; le code suivant est le fichier de classe du serveur
Service.php

Le code est le suivant suit :

<?php
class Service
{
public function Hello()
{
echo &#39;hello good&#39;;
}
public function Add($a,$b)
{
return $a+$b;
}
}
$server=SoapServer(&#39;Service.php&#39;,array(&#39;soap_version&#39;=>soap_1_2));
$server->setClass(&#39;Service&#39;);//注册Service类的所有方法
$server->handle();//处理请求
?>

Après avoir écrit les fichiers serveur et wsdl, vous devez les appeler depuis le client. Veuillez consulter le code d'appel du client :

client.php

Le code est le suivant :

<?php
ini_set(&#39;soap.wsdl_cache_enabled&#39;,&#39;0&#39;);//关闭缓存
$soap=new SoapClient(&#39;http://127.0.0.1/soap/Service.php?wsdl&#39;);
echo $soap->Add(1,2);
//echo $soap->_soapCall(&#39;Add&#39;,array(1,2))//或者这样调用也可以
?>

Il s'agit d'un exemple de code complet pour écrire une interface de service Web. et en appelant, j'espère que cela sera utile à ceux qui ont besoin de PHPer ;
Ensuite, appeler l'interface de service Web d'autres personnes est le code écrit par client.php.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn