ezkimo/isbn-webservice-client

PHP SoapClient 类的面向对象示例实现

dev-master 2020-04-13 18:56 UTC

This package is auto-updated.

Last update: 2024-09-14 05:01:55 UTC


README

PHP SoapClient 类的面向对象示例实现

安装

运行以下命令以安装此库

$ composer require ezkimo/isbn-webservice-client

示例

此示例假设PSR-4自动加载器,并展示了如何使用SoapClient实现来使用免费ISBN Web服务。

<?php
declare(strict_types=1);
namespace MMNewmedia\Example;

use MMNewmedia\IsbnWebserviceClient\Entity\IsValidISBN13;
use MMNewmedia\IsbnWebserviceClient\Soap\IsbnSoapClient;
use DOMDocument;
use SoapFault;

// require PSR-4 autoloading (assumes, that composer dump-autoload was executed before)
require '../vendor/autoload.php';

try {
    $wsdl = 'http://webservices.daehosting.com/services/isbnservice.wso?WSDL';
    $client = new IsbnSoapClient($wsdl);
    
    $isValidIsbn13 = (new IsValidISBN13())
        ->setIsbn('9783864906466');
    
    $response = $client->IsValidISBN13($isValidIsbn13);
    
    $dom = new DOMDocument();
    $dom->formatOutput = true;
    
    echo "<h2>Request</h2>";
    $dom->loadXML($client->__getLastRequest());
    echo "<pre>" . htmlentities($dom->saveXML()) . "</pre>";
    
    echo "<h2>Response</h2>";
    $dom->loadXML($client->__getLastResponse());
    echo "<pre>" . htmlentities($dom->saveXML()) . "</pre>";
    
    echo "<h2>PHP Response</h2>";
    echo "<pre>";
    var_dump($response);
    echo "</pre>";
} catch (SoapFault $fault) {
    var_dump($fault);
}