vaclavvanik / soap-interpreter
Interpreting of SOAP 1.1 and SOAP 1.2 messages
Requires
- php: ^7.3 || ^8.0
- ext-soap: *
- vaclavvanik/soap-wsdl: ^1.0.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
This package provides interpreting of SOAP 1.1 and SOAP 1.2 messages. It can be used in WSDL or non-WSDL mode. The implementation is built on the top of PHP's SoapClient.
It is not intended to use this package directly.
You can use:
-
soap-binding package for creating PSR-7 compliant SOAP requests and processing PSR-7 responses to SOAP.
-
soap-client package for processing requests and responses with PSR HTTP client.
Install
You can install this package via composer.
composer require vaclavvanik/soap-interpreter
Usage
An PhpInterpreter is responsible for generating SOAP request messages and translating SOAP response messages.
Create PhpInterpreter in WSDL mode
<?php declare(strict_types=1); use VaclavVanik\Soap\Interpreter\PhpInterpreter; $interpreter = PhpInterpreter::fromWsdl('http://www.dneonline.com/calculator.asmx?wsdl');
Create PhpInterpreter in non-WSDL mode
<?php declare(strict_types=1); use VaclavVanik\Soap\Interpreter\PhpInterpreter; $interpreter = PhpInterpreter::fromNonWsdl('http://tempuri.org/', 'http://www.dneonline.com/calculator.asmx');
Generate SOAP request message in WSDL mode
<?php declare(strict_types=1); use VaclavVanik\Soap\Interpreter\PhpInterpreter; $request = (PhpInterpreter::fromWsdl('http://www.dneonline.com/calculator.asmx?wsdl'))->request('Add', ['Add' => ['intA' => 1, 'intB' => 3]]); print_r($request->getBody());
Output:
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/"> <SOAP-ENV:Body> <ns1:Add> <ns1:intA>1</ns1:intA> <ns1:intB>3</ns1:intB> </ns1:Add> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Translate SOAP response message
<?php declare(strict_types=1); use VaclavVanik\Soap\Interpreter\PhpInterpreter; $response = <<<XML <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <ns1:AddResponse xmlns:ns1="http://tempuri.org/"> <ns1:AddResult>4</ns1:AddResult> </ns1:AddResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> XML; $response = (PhpInterpreter::fromWsdl('http://www.dneonline.com/calculator.asmx?wsdl'))->response('Add', $response); print_r($response->getResult());
Output:
stdClass Object ( [AddResult] => 4 )
Advanced WSDL usage
Package soap-interpreter-wsdl offers advanced WSDL usage.
Exceptions
- Exception\SoapFault if soap fault thrown.
- Exception\ValueError if required argument is incorrect.
- Exception\WsdlParsingError if wsdl cannot be parsed..
- Exception\Exception if any other error occurs.
or VaclavVanik\Soap\Wsdl\Exception\Exception if other wsdl error occurs.
Run check - coding standards and php-unit
Install dependencies:
make install
Run check:
make check
Changelog
Please see CHANGELOG for more information what has changed recently.
License
The MIT License (MIT). Please see License File for more information.