PHPを使用してネットワークサービスを実装する
著者: samisa
次のテキスト内の翻訳された名前の比較表:
ペイロード: 会話コンテンツ
オブジェクト: インスタンス
関数: 関数
PHP を使用してネットワーク サービスを実装します
使用フレームワーク: WSO2 WSF /PHP
インストール環境: Windows または Linux
(最近のコンピューター記事には難しい翻訳や専門用語が無数にあるのにうんざりしているので、ここでは話し言葉と中国語を使用するようにしています。)
WSMessages クラス:
ネットワークを呼び出す場合 サービス処理中には、送信メッセージと受信メッセージの 2 つのメッセージが必要であり、これらを行き来する前にメッセージを行き来する必要があります。 WSMessages クラスは、オープン ソース フレームワーク Web サービス フレームワーク for php (略して WSF) でこれら 2 つのメッセージをカプセル化するために使用されます。
WSMessages には、メッセージの内容を保存し、「ペイロード」を XML 形式で保存するための非常に重要な変数 str があります (彼らはこれをペイロードと呼びます。英語の辞書を調べましたが、その意味ですが、前後に表示されます)繰り返し表示される外観は会話の内容であり、実際には XML の定義やその他のいわゆる「名前空間」 -> 名前空間定義が削除されます。 名前空間とは何かについては、XML の W3C を確認してください。意味)。ペイロードは非常に不可解なので、今後はこれを「会話コンテンツ」と呼ぶことにします。
クライアント プログラムを通じてリクエストを送信する場合は、WSMessage のインスタンスを構築し、そのインスタンスに XML 形式の会話コンテンツを入力する必要があります。リクエストに対する応答は依然としてプログラムを通じて返される「会話コンテンツ」であり、返されるものは依然として WSMessage インスタンスです。
言い換えると、クライアント関数がネットワーク サービスに応答する場合、その戻り値も WSMessage インスタンスになります。
関数でリクエストを送信し、ネットワーク サービス プログラムを呼び出し、返された内容を WSMessage インスタンスに入れて、関数がこの WSMessage インスタンスを返すようにすることができます。
WSMessage は、添付ファイルなどのより複雑なコンテンツを送受信する傾向があります。 WSMessage を使用してクライアントとサーバー間で通信する方法を詳しく説明します。
会話コンテンツの処理:
php を使用してネットワーク サービスを作成する方法をすでに説明し、ワークフローを示すために単純なクライアント サーバー プログラムを作成しました。しかし、これらのプログラムでは、私たちが「会話の内容」をどのように処理するかについては詳しく説明されていません。つまり、会話内容をxml形式でサーバーに送信しただけで、それを加工することは考えていませんでした。ここでは、会話の内容を処理して計算プログラムで使用する方法について詳しく説明します。
会話内容は、ビジネスロジックで定義され、SOAP(Simple Object Access Protocol)を使用してカプセル化された内容です(SOAP w3cの記事を参照してください)。例を使用して階乗を計算する方法を説明しましょう。
クライアントが送信する必要がある会話の内容:
6
サーバーはこの会話の内容を理解する必要があります。変数が解決され、その階乗が計算されます。以下はサーバー プログラムです:
function getFactorial ( $message ) {
$simplexml = new SimpleXMLElement ( $message -> str ) ;
$value = $simplexml ->
$result = 階乗 ( $value ) ;
$responsePayloadString = <<
XML;
return $responsePayloadString;
3 行目で、入力「会話コンテンツ」を使用して simpleXmlElement のインスタンスを作成します。入力した会話内容が、関数パラメータで渡されたWSMessageインスタンスの$messageのstr変数に保存されていることがわかります。注: SimpleXml は、XML ファイルまたは文字列を処理するための PHP 拡張機能です。 WSO2 WSF/PHP では、XML を処理するためにどの PHP 拡張子を使用する必要があるかが指定されていません。 domdocument、saxdom など、お気に入りの XML および PHP 拡張機能を使用して処理できます。
4 行目は会話内容からパラメータ値を抽出します。これは、サービス プログラムがパラメータの種類など、これらのパラメータを理解する方法を知る必要があることを意味します。 (通常、このパラメータの種類は会話の内容に記載する必要があります)。関数の残りの部分は階乗の通常の処理です。 6 行目では、他の関数を呼び出して階乗を計算します。 8行目から12行目までは返信の会話内容も書かれており、返信する必要があります。 14行目で返信の会話内容を返しています。
返信の会話の内容は次のようになります:
も同様に使用できます。返信チャットのコンテンツを処理するための同じメソッド:
$response = $client -> request ($reqestPayloadString ) ;
$simplexml = new SimpleXMLElement ( $response -> str ) ; = " . $simplexml -> result [ 0 ] . "
" ;
3 行目では、返信の会話コンテンツを使用して SimpleXMLElement インスタンスが作成されます。同様に、$response も WSMessage のインスタンスであり、応答の会話コンテンツを XML 形式で格納するメンバー変数 str にアクセスできます。これを SimpleXMLElement コンストラクターに渡し、SimpleXMLElement のインスタンスを作成します。次に、結果要素 (またはノード?要素。XML では要素と呼ぶことができますが、ツリー構造の場合、ノードは多すぎませんか?) にアクセスできます。
次に、チャット情報コンテンツを処理する方法を学習する必要があります。それがクライアントのアプリケーションであるか、サーバーの応答であるか。
注: サーバー側の getFactory 関数 (14 行目) では、返信の会話コンテンツの代わりに WSmessage を返すことができます。この機能を実現するには、次の短いプログラムを使用できます。
$outMessage = new WSMessage( $responsePayloadString );
return $outMessage ;
これは実際には、サーバー プログラムが会話コンテンツを XML 形式で返すことができ、WSMessage
Complete のインスタンスも返すことができることを意味します。プログラムはこの記事の最後に添付します。
メッセージの追跡
PHP 用の WSO2 Web サービス フレームワークを通じて、クライアントから送信された SOAP メッセージを追跡でき、クライアントはサーバーからメッセージ (つまり、会話の内容) を受信します。ネットワーク クライアント サービス クラスの WSClient には、この目的を達成するための 2 つの関数 getLastReauest() と getLastResponse() があります。クライアントが request() 関数を使用した後、これら 2 つの関数を通じて会話情報を取得できます。
$response = $client -> request ( $reqestPayloadString ) ;
printf ( "
Request = %s " ,
htmlspecialchars ( $client -> getLastRequest ())) ;
printf ( "
Response = %s " ,
htmlspecialchars ( $client -> getLastResponse ())) ;プログラム フラグメントは、request() 関数によって実装されたリクエストと応答の内容を表示します。
実際、このプログラムは次のような出力を行います:
Request =
応答 =
;soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
SOAP メッセージのトレースは、呼び出されるサービスを調査する場合、特にサービスやクライアントのバグを見つける場合に非常に役立ちます。たとえば、クライアントが送信したメッセージとサーバーが返信したメッセージをすべて確認したり、会話内容(クライアントとサーバー)の形式を確認したりできます。
デバッグ(この言葉はよく使われる言葉なので、ここでは翻訳しませんが、私の夢はいつかプログラムが中国語で書かれることですが、この夢がどんどん遠ざかっていることは明らかです)
php WSF を使用するときに、ユーザーは 2 つの問題に遭遇することがあります。質問:
wsf をインストールします。 この WSF が適切に動作していることをどうやって確認できますか?まず、phpinfo() 関数を使用して確認できます (この関数とその使用方法がわからない場合は、php マニュアルを確認してください)。php ファイルを作成して次のように記述するだけです。文章をブラウザで開きます。
phpinfo () ;
?>
すべての拡張機能が正しくインストールされている場合は、表に wsf という名前の項目が表示されます。 「WSF サポート」などの単語。これは php.ini で定義されています (または、たとえば、php.ini で定義せずに、wsf.ini という新しいファイルを /etc/php5/conf.d/ に書きました。実際には、このファイルはすべてこの中にあります)フォルダーは後で php.ini にマージされるため、php.ini で対応する設定が見つからず、wsf が利用できない場合は、ここに来て調べてみるとよいでしょう)
この拡張機能が存在しない場合phpinfo に表示されるので、インストール ガイドを見つけて注意深く検討する必要があります。見つからない場合は、ferdinandfly@yahoo.ca まで電子メールを送ってください。インストールに成功したら、2 番目の問題があります。この例は正しく実行できないようです。同様に、一部の設定が正しいことを確認する必要があります。 1 つ目は、php.ini レコードに一部のログ ファイルへのパスが設定されていることが多いということです。おそらく、ログ ファイルが存在しないか、設定されたパスが php5 によって読み書きできない可能性があります。また、php.ini にいくつかのスクリプト ファイルが含まれていること、およびこれらのスクリプト ファイルが読み取り可能であることを確認する必要があります。 上記は正しいが、wsf が動作していない場合は、ログ ファイルを確認できます。ログ ファイルは、wsf.log_path レコードによって決定されるパスに書き込まれます。これはphp.iniで設定します。設定されていない場合、ログは /tmp (Linux) にあります。知っておく必要があるのは、Windows プラットフォームではデフォルトのパスが存在しない可能性があるため、そのログ パスを指定する必要があるということです。サービスに関連するログは wsf_php_server.log に記録され、クライアントに関連するログは wsf_php_client.log に保存されます。クライアントとサービス ホストが同じマシンではない場合、両方のファイルがサーバー上にあります。ログ レベルを調整することで、さまざまな詳細レベルのログ ファイルを取得できます。デバッグの場合は、レベル 4 に設定できます。もちろん、成熟したソフトウェアの場合は、0 (重大なエラーのみ) または 1 (エラー) に設定できます。
交換コンテンツ (SOAP) が希望の形式であることを確認したい場合は、前に説明したように、SOAP メッセージ トレースを使用してデバッグできます。
概要:
この記事では、WSMessage クラスと、会話コンテンツを処理して使用する方法について説明しました。クライアントまたはサーバーは、WSMessage の str メンバー変数 (xml) を呼び出すことで会話コンテンツを取得できます。 。通常、会話コンテンツの形式は WSDL によって定義されるため、クライアントとサーバーが同じ形式に準拠することを要求するのは合理的です。次の章では、WSF/PHP と WSDL が WSO2 を通じてどのように連携するかについて説明します。

ホット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)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

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

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

この記事では、ビットコイン取引アプリケーションのインストールと登録方法の詳細な紹介について説明します。ビットコイン取引アプリを使用すると、ユーザーはビットコインなどの暗号通貨を管理および取引できます。この記事では、アプリケーションのダウンロード、アカウントの作成、身元確認の実行、最初のデポジットなど、インストールおよび登録プロセスを段階的にガイドします。この記事の目標は、初心者に明確で理解しやすいガイドラインを提供して、ビットコイン取引の世界に簡単に参入できるようにすることです。
