1. Go to this page and download the library: Download php-soap/encoding library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
php-soap / encoding example snippets
use Soap\Encoding\Driver;
use Soap\Encoding\EncoderRegistry;
use Soap\Engine\SimpleEngine;
use Soap\Psr18Transport\Psr18Transport;
use Soap\Wsdl\Loader\StreamWrapperLoader;
use Soap\WsdlReader\Locator\ServiceSelectionCriteria;
use Soap\WsdlReader\Model\Definitions\SoapVersion;
use Soap\WsdlReader\Wsdl1Reader;
// Loads the WSDL with the php-soap/wsdl-reader package:
$wsdl = (new Wsdl1Reader(new StreamWrapperLoader()))($wsdlLocation);
// Create an engine based on the encoding system that is provided by this package:
$engine = new SimpleEngine(
Driver::createFromWsdl1(
$wsdl,
ServiceSelectionCriteria::defaults()
->withPreferredSoapVersion(SoapVersion::SOAP_12),
EncoderRegistry::default(),
),
Psr18Transport::createForClient($httpClient)
);
// Perform requests:
$decodedResult = $engine->request('Add', [
[
'a' => 1,
'b' => 2
]
]);
/*
RESULT :
class stdClass#2135 (1) {
public $AddResult =>
int(3)
}
*/
use Soap\Encoding\ClassMap\ClassMap;
use Soap\Encoding\ClassMap\ClassMapCollection;
use Soap\Encoding\Encoder\SimpleType\DateTimeTypeEncoder;
use Soap\Encoding\EncoderRegistry;
use Soap\Xml\Xmlns;
EncoderRegistry::default()
->addClassMap('urn:namespace', 'TypeA', TypeA::class)
->addClassMap('urn:namespace', 'TypeB', TypeB::class)
->addClassMapCollection(new ClassMapCollection(
new ClassMap('urn:namespace', 'TypeC', TypeC::class),
))
->addBackedEnum('urn:namespace', 'EnumA', EnumA::class)
->addSimpleTypeConverter(Xmlns::xsd()->value(), 'dateTime', new DateTimeTypeEncoder('Y-m-d\TH:i:s'))
->addComplexTypeConverter('urn:namespace', 'TypeC', MySpecificTypeCEncoder::class);
use Soap\Encoding\Encoder\Context;
use Soap\Encoding\Encoder\XmlEncoder;
use VeeWee\Reflecta\Iso\Iso;
/**
* @implements XmlEncoder<MyClass, string>
*/
class MySpecificTypeCEncoder implements XmlEncoder
{
/**
* @return Iso<MyClass, string>
*/
public function iso(Context $context) : Iso
{
return new Iso(
to: static fn (MyClass $value): string => $myClass->toXmlString(),
from: static fn (string $value) => MyClass::fromXmlString($value),
);
}
}
bash
composer
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.