Maison développement back-end tutoriel php À propos de l'architecture simple de l'implémentation du service Web en PHP

À propos de l'architecture simple de l'implémentation du service Web en PHP

Jun 21, 2018 pm 03:04 PM
php webservice

Cet article présente principalement quatre méthodes architecturales simples et des exemples d'implémentation de services Web en PHP. Les amis dans le besoin peuvent s'y référer

1 : le propre SOAP de PHP
Tous les services Web incluent le côté serveur (serveur) et client (cliente).
Pour utiliser le propre savon de PHP, vous devez d'abord installer et activer l'extension. Regardons le code spécifique ci-dessous
Tout d'abord, il s'agit de l'implémentation côté serveur :

<?php   
class test   
{   
    function show()   
    {   
        return &#39;the data you request!&#39;;   
    }   
}   
function getUserInfo($name)   
{   
    return &#39;fbbin&#39;;   
}   
//实例化的参数手册上面有,这个是没有使用wsdl的,所以第一个参数为null,如果有使用wsdl,那么第一个参数就是这个wsdl文件的地址。   
$server = new SoapServer(null, array(&#39;uri&#39; =&#39;http://soap/&#39;,&#39;location&#39;=&#39;http://localhost/test/server.php&#39;));   
$server->setClass(&#39;test&#39;);   
//$server->addFunction(&#39;getUserInfo&#39;);   
$server->handle();   
?>
Copier après la connexion

Ensuite, le client

$soap = new SoapClient(null, array(&#39;location&#39;=&#39;http://localhost/test/server.php&#39;,&#39;uri&#39; =&#39;http://soap/&#39;));     
echo $soap->show();   
//得到:&#39;the data you request!&#39;   
//echo $soap->getUserInfo(&#39;sss&#39;);
Copier après la connexion

C'est aussi simple que cela. , ce n'était qu'un exemple très simple. En fait, de nombreux mécanismes de communication sont mis en œuvre de cette manière !
//////////////////////////////////////////// /// ///////////////////////////////

Deux : PHPRPC
Premier coup sur le site officiel (http ://www.phprpc.org/zh_CN/) Allez télécharger la dernière version de phprpc Après la décompression, il y aura les fichiers pertinents (fichiers serveur et client) comme suit :
Fichiers serveur :

dhparams   
dhparams.php   
phprpc_server.php   
bigint.php   
compat.php   
phprpc_date.php   
xxtea.php
Copier après la connexion

Fichiers clients :

phprpc_client.php   
bigint.php   
compat.php   
phprpc_date.php   
xxtea.php
Copier après la connexion

Nous mettons les fichiers serveur dans le dossier serveur, puis mettons les fichiers clients dans le dossier client, puis créons un nouveau fichier (server.php) dans le dossier du serveur en tant que service, puis créez un nouveau fichier (client.php) sur le client en tant que client. Les codes respectifs sont les suivants :
Côté serveur :

.
<?php   
include_once"phprpc_server.php"; //加载phprpc文件   
$server = new PHPRPC_Server();   
$server->add(&#39;getUser&#39;);   
$server->setDebugMode(true);   
$server->start();   
function getUser( )   
{   
    return ‘the data you request!&#39;;   
}
Copier après la connexion

Côté client :

[code]   
<?php   
include_once "phprpc_client.php";   
$client = new PHPRPC_Client(&#39;http://127.0.0.1/phpservice/phprpcserver/server.php&#39;);   
$data = $client->getUser();   
var_dump($data);   
//得到:the data you request!
Copier après la connexion

Après avoir mentionné wsdl ci-dessus, nous parlerons de la façon de le générer.
//////////////////////////////////////////// /// ///////////////////////////////

Trois : NUSOAP open source
Allez d'abord en ligne. Téléchargez la dernière version de nusoap. La dernière version est la 0.9.5. Après la décompression, vous obtiendrez un dossier lib respectivement dans le serveur et le client, puis les créerez séparément sur le serveur et le client. Les fichiers server.php et client.php servent de fichiers de communication.
Les fichiers côté serveur sont les suivants :

<?php   
ini_set("soap.wsdl_cache_enabled", 0);//关闭缓存   
require_once("lib/nusoap.php"); //加载nusoap文件   
$server = new soap_server;   
$server->configureWSDL(&#39;nusoasp&#39;);//设定服务的名称,使用的wsdl来通信,如果不适用wsdl将会更简单,网上有很多的例子   
$server->register(&#39;getUserInfo&#39;, array(&#39;name&#39;="xsd:string", &#39;email&#39;="xsd:string"), array(&#39;return&#39;="xsd:string"));   
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : &#39;&#39;;   
$server->service( $HTTP_RAW_POST_DATA );   
function getUserInfo($name, $email)   
{   
    return ‘the data you request!&#39;;   
}
Copier après la connexion

Les fichiers côté client sont les suivants :

require_once("lib/nusoap.php");   
$client = new soapclient(&#39;http://localhost/phpservice/nusoapserver/server.php?wsdl&#39;);   
$pagram = array(&#39;fbbin&#39;, &#39;fbbin@foxmail.com&#39;);   
$string = $client->call(&#39;getUserInfo&#39;, $pagram);   
//得到:the data you request!
Copier après la connexion

///////////// ////// ///////////////////////////////////////// ////////// //////////

Quatre : HessianPHP
hessian En fait, je pense personnellement que ce n'est pas un webservice, ça ne peut être que dit être similaire. Car il n’a pas les caractéristiques d’un webservice. Il prend en charge de nombreuses langues. Il ne nous reste plus qu'à étudier la version php de HessianPHP. La dernière version à télécharger est la v2.0.3. Après la décompression, vous obtiendrez un répertoire src, qui est un dossier principal que nous devons utiliser.
Nous l'avons renommé HessianPHP et l'avons placé respectivement sur le serveur et le client, puis avons créé les fichiers server.php et client.php respectivement.
Côté serveur :

<?php   
include_once &#39;HessianPHP/HessianService.php&#39;;//加载核心文件   
class TestService   
{   
    public function __construct()   
    {   
  
    }   
  
    public function add($numa, $numb)   
    {   
        return $numa + $numb;   
    }   
  
    public function check()   
    {   
        return &#39;fbbiin@gmail.com&#39;;   
    }   
}   
$test = new TestService();   
$hessian = new HessianService( $test, array(&#39;displayInfo&#39; => true) );   
$hessian->handle();//注意这里不是网上的$hessian->service(),可能是版本不一样,改了吧!我也是看了源码才知道!   
?>
Copier après la connexion

Côté client :

<?php   
include_once &#39;HessianPHP/HessianClient.php&#39;;   
$url = "http://localhost/phpservice/hessianserver/server.php";   
$options = new HessianOptions();   
$client = new HessianClient( $url, $options );   
$num = $client->add( 3, 5 );   
echo $num;//得到:8;   
echo $client->check();//得到:fbbiin@gmail.com;
Copier après la connexion

Les quatre méthodes ci-dessus sont des méthodes de communication de services Web couramment utilisées dans le processus de développement Web. Le plus couramment utilisé est nusoap. Personnellement, je pense que phprpc est en fait assez bon. Celui-ci est fondamentalement similaire à nusoap en termes de performances. Cependant, phprpc est commercialement facturé. Il existe également hessianPHP, qui semble utiliser Java et utilise une méthode binaire pour transmettre des flux de données. En fait, chacun a ses propres mérites. Pour des informations plus détaillées, veuillez consulter Baidu et Google.
Ce qui suit concerne la génération de fichiers wsdl.
La méthode la plus couramment utilisée et relativement sûre pour communiquer sur un service Web est d'utiliser wsdl. Ce type de fichier peut être écrit par soi-même, mais il ne semble pas possible pour certains experts de l'écrire, nous en avons donc besoin. pour utiliser un outil.zend studio pour générer des fichiers wsdl.
Ensuite, nous allons générer un fichier WSDL, Fichier->Nouveau—>Autre—>Service Web—>WSDL, afin de pouvoir créer un nouveau fichier WSDL, comme indiqué dans la figure.


Ensuite on modifie le fichier WSDL, zeng studio nous fournit des opérations visuelles, bien sur si Si vous êtes bons dans ce domaine, bien sûr, vous pouvez modifier le code du fichier. En fait, il n'y a que quelques choses, et ce ne sera pas trop difficile si vous les comprenez.


Après cette étape, le fichier WSDL est fondamentalement utilisable, mais il y a deux problèmes auxquels il faut prêter attention :
Après cela Étape, le test peut échouer, peut-être parce qu'il n'y a pas de liaison. Cela doit parfois être fait manuellement. Cliquez simplement avec le bouton droit sur la liaison et sélectionnez Générer du contenu de liaison (la petite case au milieu des deux grandes cases).
La deuxième chose à laquelle il faut prêter attention est le cache WSDL de php Lors des tests, vous devez généralement désactiver le cache WSDL, sinon vous risquez d'utiliser le fichier WSDL d'origine au lieu du fichier mis à jour. Il existe deux façons de désactiver le cache. La première consiste à définir directement soap.wsdl_cache_enabled = 0 dans php.ini ; la seconde consiste à ajouter une instruction dans le fichier php, ini_set("soap.wsdl_cache_enabled", "0"). ;
Après cela, vous pouvez tester et appeler en toute sécurité votre programme serveur.
C'est tout, OK !

Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de tout le monde. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

À propos du temps de formatage personnalisé php

À propos de l'utilisation de exec, system et d'autres fonctions pour appeler des commandes système dans la méthode 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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

7 fonctions PHP que je regrette de ne pas connaître auparavant 7 fonctions PHP que je regrette de ne pas connaître auparavant Nov 13, 2024 am 09:42 AM

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Programme PHP pour compter les voyelles dans une chaîne Programme PHP pour compter les voyelles dans une chaîne Feb 07, 2025 pm 12:12 PM

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Apr 03, 2025 am 12:03 AM

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.

See all articles