ホームページ >バックエンド開発 >PHPチュートリアル >PHP での WSDL を使用した SOAP の実装
Composerを使用してWSDLの生成に必要なライブラリをインストールします
composer require piotrooo/wsdl-creator
外部アクセス用のエントリファイルを実装します。コード例を参照してください(パラメータに表示されるメソッド名とNotifyはクラス名、このクラスのメソッドに対応しています) SOAP を介して利用可能になります。外部インターフェースが呼び出されます):
<?phpuse WSDL\DocumentLiteralWrapper;use WSDL\WSDLCreator;use WSDL\XML\Styles\DocumentLiteralWrapped;class Api{ public static function soapNotify() { $host = $_SERVER['HTTP_HOST']; $soapuri = "http://{$host}/Api/soapNotify"; if (isset($_GET['wsdl'])) { $wsdl = new WSDLCreator('Notify', $soapuri); $wsdl->renderWSDL(); exit; } $server = new SoapServer(null, [ 'uri' => $soapuri ]); $server->setClass('Notify'); $server->handle(); }}
インターフェース関数ロジックを含むクラス ファイルを実装します。コード例を参照してください (メソッドのコメントは非常に重要であり、wsdl-creator が正しく動作するための基礎となります) WSDL を生成し、形式に厳密に従ってコメントする必要があります):
class Notify{ /** * @desc sendText 向患者的微信发送文本信息 * @param string $toUser 发给哪个用户 * @param string $content 发送的内容 * @return string $result */ public function sendText($toUser, $content) { if (!$toUser || !$content) { return E::INVALID; } $user = G::xpdo()->row("SELECT * FROM `users` WHERE `patientid` = ?", [$toUser]); if (!$user) { return E::NODATA; } $api = G::xpdo()->row("SELECT * FROM `api` WHERE `token` = ?", [$user['token']]); $weixin = new Weixin($api['appid'], $api['appsecret']); $weixin->sendText($user['openid'], $content); return 0; }}
SoapUI ソフトウェアを使用してインターフェイスをデバッグします
対応するインターフェイス呼び出しドキュメントをコンパイルします
参考資料:
SOAP の基本的なドキュメント構造を理解するには、以下を参照してください。 WSDL を生成するライブラリ wsdl-creator の詳細については、https://github.com/ を参照してください。 piotrooo/wsdl-creator