例では、PHP を使用して Web サービス アーキテクチャを実装する 4 つの方法を紹介します。
私が知っている Web サービスには、PHP 独自の SOAP、オープンソースの NUSOAP、商用版の PHPRPC、バイナリ送信データ ストリームを使用する HessianPHP などがあります。これらの PHP の Web サービスを簡単に紹介します。この点に関する情報はインターネット上にありますが、これは私の個人的な実践であり、もちろんオンラインで見つけた情報をここにメモしておきます。
1: PHP 独自の SOAP
すべての Web サービスにはサーバーとクライアントが含まれます。
PHP 独自の SOAP を使用するには、まず拡張機能をインストールして有効にする必要があります。具体的なコードを見てみましょう
まず、これはサーバー側の実装です:
PHP コード
<?php class test { function show() { return 'the data you request!'; } } function getUserInfo($name) { return 'fbbin'; } //实例化的参数手册上面有,这个是没有使用wsdl的,所以第一个参数为null,如果有使用wsdl,那么第一个参数就是这个wsdl文件的地址。 $server = new SoapServer(null, array('uri' ='http://soap/','location'='http://localhost/test/server.php')); $server->setClass('test'); //$server->addFunction('getUserInfo'); $server->handle(); ?>
次に、クライアント
PHP コード
$soap = new SoapClient(null, array('location'='http://localhost/test/server.php','uri' ='http://soap/')); echo $soap->show(); //得到:'the data you request!' //echo $soap->getUserInfo('sss');
そのときは、とても簡単です。これは非常に単純な例にすぎません。実際、多くの通信メカニズムがこの方法で実装されています。
////////////////////////////////////////////// /// ////////////////////////////////
2: PHPRPC
まず公式ウェブサイトにアクセスします( http://www.phprpc .org/zh_CN/ ) を使用して phprpc の最新バージョンをダウンロードします。解凍後、ファイル (サーバー ファイルとクライアント ファイル) が次のように分割されます。
PHP コード
dhparams dhparams.php phprpc_server.php bigint.php compat.php phprpc_date.php xxtea.php
クライアント ファイル:
PHP コード
phprpc_client.php bigint.php compat.php phprpc_date.php xxtea.php
サーバー ファイルをサーバー フォルダーに配置し、次にクライアント ファイルをクライアント フォルダーに配置し、サーバー フォルダー ファイルに新しいファイルを作成します
サーバー側:
PHP コード
<?php include_once"phprpc_server.php"; //加载phprpc文件 $server = new PHPRPC_Server(); $server->add('getUser'); $server->setDebugMode(true); $server->start(); function getUser( ) { return ‘the data you request!’; }
clientサイド:
PHP コード
<?php include_once "phprpc_client.php"; $client = new PHPRPC_Client('http://127.0.0.1/phpservice/phprpcserver/server.php'); $data = $client->getUser(); var_dump($data); //得到:the data you request!
上記の wsdl について言及した後、それを生成する方法について説明します。
3: オープンソース NUSOAP
まず、インターネットにアクセスして、nusoap の最新バージョンをダウンロードします。解凍後、このファイルをサーバーとクライアントにそれぞれ配置します。 1 つのコピーを作成し、server.php ファイルと client.php ファイルをそれぞれ通信ファイルとしてサーバーとクライアントに作成します。
サーバー側のファイルは次のとおりです:
PHP コード
<?php ini_set("soap.wsdl_cache_enabled", 0);//关闭缓存 require_once("lib/nusoap.php"); //加载nusoap文件 $server = new soap_server; $server->configureWSDL('nusoasp');//设定服务的名称,使用的wsdl来通信,如果不适用wsdl将会更简单,网上有很多的例子 $server->register('getUserInfo', array('name'="xsd:string", 'email'="xsd:string"), array('return'="xsd:string")); $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service( $HTTP_RAW_POST_DATA ); function getUserInfo($name, $email) { return ‘the data you request!’; }
クライアント側のファイルは次のとおりです:
PHP コード
require_once("lib/nusoap.php"); $client = new soapclient('http://localhost/phpservice/nusoapserver/server.php?wsdl'); $pagram = array('fbbin', 'fbbin@foxmail.com'); $string = $client->call('getUserInfo', $pagram); //得到:the data you request!
Four: HessianPHP
Hessianそれはありませんwebservice は、That's all に似ているとしか言えません。 Webサービスとしての特徴がないからです。多くの言語をサポートしています。ここで必要なのは、HessianPHP の php バージョンをダウンロードすることだけです。解凍後、使用する必要があるコア フォルダーである src ディレクトリが得られます。
HessianPHP に名前を変更してサーバーとクライアントにそれぞれ配置し、server.php と client.php ファイルをそれぞれ作成しました。
サーバー側:
PHP コード
<?php include_once 'HessianPHP/HessianService.php';//加载核心文件 class TestService { public function __construct() { } public function add($numa, $numb) { return $numa + $numb; } public function check() { return 'fbbiin@gmail.com'; } } $test = new TestService(); $hessian = new HessianService( $test, array('displayInfo' => true) ); $hessian->handle();//注意这里不是网上的$hessian->service(),可能是版本不一样,改了吧!我也是看了源码才知道! ?>
クライアント側:
PHP コード
<?php include_once 'HessianPHP/HessianClient.php'; $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;
上記 4 つの方法は、Web 開発プロセスで一般的に使用される Web サービス通信方法です。最も一般的に使用されているのは nusoap ですが、個人的には phprpc は基本的に nusoap に似ていますが、有料です。また、Java を使用しているようで、バイナリ メソッドを使用してデータ ストリームを送信する hessianPHP もあります。実際、それぞれに独自の利点があります。さらに詳しい情報については、Baidu および Google をご覧ください。
以下はwsdlファイルの生成についてです。
Web サービスで通信するために最も一般的に使用され、比較的安全な方法は、wsdl を使用することです。この種のファイルは自分で作成できますが、一部の専門家が作成することは不可能であるようです。 zend Studio ツールを使用して wsdl ファイルを生成します。
次に、図に示すように、[ファイル]->[新規]->[その他]->[Web サービス]->[WSDL] で WSDL ファイルを生成します。これにより、新しい WSDL ファイルを作成できるようになります。
次に、zeng スタジオが提供する視覚的な操作を行います。もちろん、実際にはファイルのコードを変更するだけです。理解すれば、それほど難しいことではありません。
このステップを完了すると、WSDL ファイルは基本的に使用できるようになりますが、次の 2 つの問題に注意する必要があります:
このステップを実行した後、おそらくバインディングがないため、テストが失敗する可能性があります。場合によっては手動で行う必要があります。バインディングを右クリックして、[バインディング コンテンツの生成] を選択します (2 つの大きなボックスの中央にある小さなボックスです)。
2 番目に注意すべきことは、php の WSDL キャッシュです。テストを実行するときは、通常、WSDL キャッシュをオフにする必要があります。そうしないと、更新された WSDL ファイルの代わりに元の WSDL ファイルが使用される可能性があります。キャッシュをオフにする方法は 2 つあります。1 つは php.ini で直接soap.wsdl_cache_enabled = 0を設定する方法で、2 つ目はphpファイルにini_set("soap.wsdl_cache_enabled", "0")というステートメントを追加する方法です。 ;
これを実行した後、サーバー プログラムを安全にテストして呼び出すことができます。
以上です、OK!

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...
