ホームページ >バックエンド開発 >PHPチュートリアル >PHP での WSDL を使用した SOAP の実装

PHP での WSDL を使用した SOAP の実装

WBOY
WBOYオリジナル
2016-06-23 13:43:46884ブラウズ

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
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。