PHPackages                             dmt-software/jms-soap-serializer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. dmt-software/jms-soap-serializer

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

dmt-software/jms-soap-serializer
================================

JMS serialize visitor that (de)serializes SOAP requests/responses

3.0.0(6mo ago)7110.8k↑23.2%33MITPHPPHP &gt;=8.3

Since Jun 28Pushed 6mo ago2 watchersCompare

[ Source](https://github.com/dmt-software/jms-soap-serializer)[ Packagist](https://packagist.org/packages/dmt-software/jms-soap-serializer)[ RSS](/packages/dmt-software-jms-soap-serializer/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (2)Versions (28)Used By (3)

SOAP Serializer
===============

[](#soap-serializer)

[![Latest Stable Version](https://camo.githubusercontent.com/879f2c32b6f99abe573086dc0ff22e06fb7b2902275c111ed37af09ceb2c0955/68747470733a2f2f706f7365722e707567782e6f72672f646d742d736f6674776172652f6a6d732d736f61702d73657269616c697a65722f762f737461626c65)](https://packagist.org/packages/dmt-software/jms-soap-serializer)[![Build Status](https://camo.githubusercontent.com/15cd98a837647a6d95beeaf732bca79553d3ea4317033150d006d9d3877f4ec8/68747470733a2f2f6170702e7472617669732d63692e636f6d2f646d742d736f6674776172652f6a6d732d736f61702d73657269616c697a65722e7376673f6272616e63683d6d6173746572)](https://app.travis-ci.com/dmt-software/jms-soap-serializer)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/86cd70104c405a6783414e553102a2a7eb7d20fb80ed070190d107845513cfd0/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f646d742d736f6674776172652f6a6d732d736f61702d73657269616c697a65722f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/dmt-software/jms-soap-serializer/?branch=master)[![Code Coverage](https://camo.githubusercontent.com/1f0ac6c03112c2bfa05957c53bbd06bbf737e736ece89d2b88b2889841768733/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f646d742d736f6674776172652f6a6d732d736f61702d73657269616c697a65722f6261646765732f636f7665726167652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/dmt-software/jms-soap-serializer/?branch=master)[![License](https://camo.githubusercontent.com/d6fb371246d0164d75a1471bd265539d7365079011e7984334d83272fd90ef5a/68747470733a2f2f706f7365722e707567782e6f72672f646d742d736f6674776172652f6a6d732d736f61702d73657269616c697a65722f6c6963656e7365)](https://packagist.org/packages/dmt-software/jms-soap-serializer)

Install
-------

[](#install)

`composer require dmt-software/jms-soap-serializer`

Usage
-----

[](#usage)

### Configure Serializer

[](#configure-serializer)

```
use DMT\Soap\Serializer\SoapDeserializationVisitorFactory;
use DMT\Soap\Serializer\SoapSerializationVisitorFactory;
use DMT\Soap\Serializer\SoapMessageEventSubscriber;
use JMS\Serializer\EventDispatcher\EventDispatcher;
use JMS\Serializer\SerializerBuilder;

$builder = SerializerBuilder::create()
    ->setSerializationVisitor('soap', new SoapSerializationVisitorFactory())
    ->setDeserializationVisitor('soap', new SoapDeserializationVisitorFactory())
    ->configureListeners(
        function (EventDispatcher $dispatcher) {
            $dispatcher->addSubscriber(
                new SoapMessageEventSubscriber()
            );
        }
    );

$serializer = $builder->build();
```

#### Enable (de)serialization of DateTime objects

[](#enable-deserialization-of-datetime-objects)

```
use DMT\Soap\Serializer\SoapDateHandler;
use JMS\Serializer\Handler\HandlerRegistry;

/** @var JMS\Serializer\SerializerBuilder $builder */
$builder->configureHandlers(
    function(HandlerRegistry $registry) {
        $registry->registerSubscribingHandler(new SoapDateHandler());
    }
);
```

#### Configure Serializer with SoapHeader

[](#configure-serializer-with-soapheader)

```
use DMT\Soap\Serializer\SoapHeaderInterface;
use DMT\Soap\Serializer\SoapHeaderEventSubscriber;
use DMT\Soap\Serializer\SoapMessageEventSubscriber;
use JMS\Serializer\EventDispatcher\EventDispatcher;

/** @var JMS\Serializer\SerializerBuilder $builder */
$builder->configureListeners(
    function (EventDispatcher $dispatcher) {
        $dispatcher->addSubscriber(
            new SoapMessageEventSubscriber()
        );
        /** @var SoapHeaderInterface $soapHeader */
        $dispatcher->addSubscriber(
            new SoapHeaderEventSubscriber($soapHeader)
        );
    }
);
```

#### Using SOAP 1.2

[](#using-soap-12)

```
use DMT\Soap\Serializer\SoapNamespaceInterface;
use DMT\Soap\Serializer\SoapSerializationVisitorFactory;

/** @var JMS\Serializer\SerializerBuilder $builder */
$builder->setSerializationVisitor(
    'soap',
    (new SoapSerializationVisitorFactory())
        ->setSoapVersion(SoapNamespaceInterface::SOAP_1_2)
);
```

### Using Serializer

[](#using-serializer)

#### Serialize SOAP Request

[](#serialize-soap-request)

```
use JMS\Serializer\Serializer;

/** @var Message $requestMessage */
/** @var Serializer $serializer */
$request = $serializer->serialize($requestMessage, 'soap');

// $request = '...';
```

#### Deserialize SOAP Response

[](#deserialize-soap-response)

```
use JMS\Serializer\Serializer;

/** @var Serializer $serializer */
$response = $serializer->deserialize('
