Maison  >  Article  >  développement back-end  >  Comment utiliser SOAP avec php ?

Comment utiliser SOAP avec php ?

WBOY
WBOYoriginal
2023-05-31 22:51:042186parcourir

Dans le développement d'applications Web modernes, l'utilisation de SOAP (Simple Object Access Protocol) est courante. SOAP est un protocole codé en XML permettant d'échanger des informations structurées sur le Web. Cet article explique comment utiliser SOAP en PHP, notamment comment créer un client SOAP et un serveur SOAP.

1. Pourquoi utiliser du SAVON ?

SOAP est un protocole utilisé pour échanger des données sur Internet. Il permet aux applications de communiquer via des messages XML et est donc populaire parmi les applications multiplateformes. SOAP utilise HTTP ou HTTPS pour le transport, afin de pouvoir communiquer entre différents ordinateurs via Internet.

SOAP est un protocole descriptif qui utilise WSDL (Web Services Description Language) pour décrire les services. WSDL est un document au format XML qui contient des descriptions détaillées des interfaces et des méthodes. Grâce à WSDL, les clients peuvent rapidement connaître les opérations et les paramètres pouvant être effectués sur le serveur distant. Par conséquent, SOAP peut être utilisé pour créer des services Web composables et distribués.

2. Créer un client en utilisant SOAP

Les étapes pour créer un client SOAP sont les suivantes :

  1. Introduire l'extension SOAP : L'extension SOAP n'est pas ajoutée à PHP par défaut. Pour utiliser SOAP, vous devez installer l'extension SOAP. Vous pouvez l'activer via le fichier PHP.ini ou en ajoutant l'extension manuellement.
  2. Créer un client SOAP : Créer un client SOAP est très simple. Il vous suffit d'appeler le constructeur SoapClient() fourni par PHP et de transmettre l'adresse du fichier WSDL. Voici un exemple de code pour créer un client SOAP :
$client = new SoapClient("http://www.example.com/webservicedoc.wsdl");
  1. Interface d'appel : À l'aide de l'objet client SOAP créé, vous pouvez facilement appeler le service distant. Vous pouvez appeler les méthodes de l'interface et transmettre les paramètres requis. Voici un exemple de code :
$result = $client->add(2, 3);
echo $result;

Dans l'exemple de code ci-dessus, nous avons appelé la méthode add() dans le service Web et passé deux paramètres. Le serveur traitera ces paramètres et renverra les résultats. Dans cet exemple, le serveur renverra 5, qui est stocké dans la variable $result.

3. Créer un serveur à l'aide de SOAP

Pour créer un serveur à l'aide de SOAP, vous devez suivre les quatre étapes suivantes :

  1. Écrire un fichier WSDL : Créez un fichier WSDL sur le serveur SOAP. WSDL est un document au format XML qui décrit les interfaces et méthodes d'un service Web. Le document WSDL doit contenir la balise WebService, qui contient des informations sur l'interface de service.
  2. Créer des objets de service SOAP : La création d'objets de service SOAP est très simple. Cette classe d'objets est chargée d'implémenter les interfaces et les méthodes du service Web. Voici un exemple de code pour créer un objet de service SOAP :
class MyService {

    function add($a, $b) {
        return $a + $b;
    }
}

$server = new SoapServer("http://www.example.com/webservicedoc.wsdl");
$server->setClass("MyService");
$server->handle();

Dans l'exemple ci-dessus, nous avons créé une classe appelée MyService et implémenté une méthode appelée "add". Cette méthode ajoute les deux paramètres et renvoie le résultat. Nous avons ensuite créé un objet serveur SOAP nommé $server et lui avons demandé d'utiliser la classe MyService pour gérer les requêtes entrantes.

  1. Lier le serveur SOAP à l'URL : Maintenant, nous devons lier le service SOAP à l'URL. Ceci peut être réalisé en appelant la méthode setEndpoint(). Voici un exemple de liaison complet :
$uri = "http://www.example.com/webservice.php";

$server = new SoapServer("http://www.example.com/webservicedoc.wsdl");
$server->setClass("MyService");
$server->setEndpoint($uri);

$server->handle();

Dans l'exemple ci-dessus, nous lierons l'URI http://www.example.com/webservice.php au serveur SOAP.

  1. Service de publication SOAP : après avoir terminé la configuration du serveur SOAP, nous devons le publier sur le Web. Nous pouvons utiliser la fonction prédéfinie SoapServer() ou SoapClient() en PhP pour accomplir cette tâche. Voici un exemple de code :
$uri = "http://www.example.com/webservice.php";

$server = new SoapServer("http://www.example.com/webservicedoc.wsdl");
$server->setClass("MyService");
$server->setEndpoint($uri);

$server->handle();

$client = new SoapClient("http://www.example.com/webservicedoc.wsdl");
$result = $client->__soapCall("add", [2, 3]);

echo $result;

Dans l'exemple ci-dessus, nous utilisons la fonction SoapServer() pour publier le service SOAP sur le Web. Nous avons ensuite créé un objet client SOAP nommé $client et appelé la méthode distante pour les tests.

Conclusion

SOAP est un protocole qui permet d'échanger des informations structurées sur Internet. En utilisant SOAP en php, vous pouvez créer des serveurs SOAP et des clients SOAP pour implémenter des services Web. En utilisant WSDL pour décrire les interfaces et les méthodes des services Web, les clients peuvent facilement comprendre les méthodes et les paramètres à appeler. Comparé à d'autres protocoles de services Web, tels que RESTful, SOAP possède de nombreuses fonctionnalités avancées, telles que la gestion des transactions et la gestion des erreurs. Lorsque vous avez besoin de créer des services Web sécurisés, puissants et flexibles, programmez avec SOAP.

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