Skip to content

Commit 9ccc0d3

Browse files
committed
Detect binding-style from both soap:operation and soap:binding
1 parent 7c84a2a commit 9ccc0d3

File tree

6 files changed

+8
-4
lines changed

6 files changed

+8
-4
lines changed

src/Metadata/Converter/Methods/Configurator/Binding/SoapBindingConfigurator.php

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public function __invoke(Method $method, Binding $binding): Method
2020
return $method->withMeta(
2121
static fn (MethodMeta $meta): MethodMeta => $meta
2222
->withTransport($implementation->transport->value)
23+
->withBindingStyle($implementation->style?->value ?? $meta->bindingStyle()->unwrapOr(null))
2324
);
2425
}
2526
}

src/Metadata/Converter/Methods/Configurator/Operation/SoapBindingOperationConfigurator.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public function __invoke(Method $method, BindingOperation $operation): Method
2424
->withSoapVersion($implementation->version->value)
2525
->withAction($implementation->action)
2626
->withOperationName($operation->name)
27-
->withBindingStyle($implementation->style->value)
27+
->withBindingStyle($implementation->style?->value ?? $meta->bindingStyle()->unwrapOr(null))
2828
->withInputBindingUsage($this->collectBindingUsageForMessage($operation->input))
2929
->withInputNamespace($this->collectMessageNamespace($operation->input))
3030
->withInputEncodingStyle($this->collectMessageEncodingStyle($operation->input))

src/Model/Definitions/Implementation/Binding/SoapBinding.php

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
namespace Soap\WsdlReader\Model\Definitions\Implementation\Binding;
55

6+
use Soap\WsdlReader\Model\Definitions\BindingStyle;
67
use Soap\WsdlReader\Model\Definitions\SoapVersion;
78
use Soap\WsdlReader\Model\Definitions\TransportType;
89

@@ -11,6 +12,7 @@ final class SoapBinding implements BindingImplementation
1112
public function __construct(
1213
public readonly SoapVersion $version,
1314
public readonly TransportType $transport,
15+
public readonly ?BindingStyle $style,
1416
) {
1517
}
1618
}

src/Model/Definitions/Implementation/Operation/SoapOperation.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ final class SoapOperation implements OperationImplementation
1111
public function __construct(
1212
public readonly SoapVersion $version,
1313
public readonly string $action,
14-
public readonly BindingStyle $style,
14+
public readonly ?BindingStyle $style,
1515
) {
1616
}
1717
}

src/Parser/Strategy/SoapStrategy.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ public function parseBindingImplementation(Document $wsdl, DOMElement $binding):
2626
{
2727
return new SoapBinding(
2828
version: $this->parseVersionFromNode($wsdl, $binding),
29-
transport: TransportType::from($binding->getAttribute('transport'))
29+
transport: TransportType::from($binding->getAttribute('transport')),
30+
style: BindingStyle::tryFromCaseInsensitive($binding->getAttribute('style')),
3031
);
3132
}
3233

@@ -35,7 +36,7 @@ public function parseOperationImplementation(Document $wsdl, DOMElement $operati
3536
return new SoapOperation(
3637
version: $this->parseVersionFromNode($wsdl, $operation),
3738
action: $operation->getAttribute('soapAction'),
38-
style: BindingStyle::tryFromCaseInsensitive($operation->getAttribute('style')) ?? BindingStyle::DOCUMENT,
39+
style: BindingStyle::tryFromCaseInsensitive($operation->getAttribute('style')),
3940
);
4041
}
4142

0 commit comments

Comments
 (0)