From 5209feb824c7ecde7388e0462ccddcf49e99983e Mon Sep 17 00:00:00 2001 From: Jan Vernieuwe Date: Fri, 26 Apr 2024 15:28:31 +0200 Subject: [PATCH] Update loader in CodeGeneratorEngineFactory The code update removes the dependency on Psr18ClientDiscovery and Psr18Loader and replaces it with StreamWrapperLoader in the CodeGeneratorEngineFactory. Additionally, a corresponding test for this change has been created in CodeGeneratorEngineFactoryTest to verify that the engine can be correctly loaded from the filesystem. Fixes #510 --- .../Soap/CodeGeneratorEngineFactory.php | 5 ++--- .../Soap/CodeGeneratorEngineFactoryTest.php | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 test/Phpro/SoapClient/Soap/CodeGeneratorEngineFactoryTest.php diff --git a/src/Phpro/SoapClient/Soap/CodeGeneratorEngineFactory.php b/src/Phpro/SoapClient/Soap/CodeGeneratorEngineFactory.php index d3c6cdaa..00a06215 100644 --- a/src/Phpro/SoapClient/Soap/CodeGeneratorEngineFactory.php +++ b/src/Phpro/SoapClient/Soap/CodeGeneratorEngineFactory.php @@ -3,7 +3,6 @@ namespace Phpro\SoapClient\Soap; -use Http\Discovery\Psr18ClientDiscovery; use Phpro\SoapClient\Soap\ExtSoap\Metadata\Manipulators\DuplicateTypes\IntersectDuplicateTypesStrategy; use Phpro\SoapClient\Soap\Metadata\MetadataFactory; use Phpro\SoapClient\Soap\Metadata\MetadataOptions; @@ -12,8 +11,8 @@ use Soap\Engine\NoopTransport; use Soap\Engine\PartialDriver; use Soap\Engine\SimpleEngine; -use Soap\Psr18Transport\Wsdl\Psr18Loader; use Soap\Wsdl\Loader\FlatteningLoader; +use Soap\Wsdl\Loader\StreamWrapperLoader; use Soap\Wsdl\Loader\WsdlLoader; use Soap\WsdlReader\Locator\ServiceSelectionCriteria; use Soap\WsdlReader\Metadata\Wsdl1MetadataProvider; @@ -33,7 +32,7 @@ public static function create( ?SoapVersion $preferredSoapVersion = null, ?ParserContext $parserContext = null, ): Engine { - $loader ??= new FlatteningLoader(Psr18Loader::createForClient(Psr18ClientDiscovery::find())); + $loader ??= new FlatteningLoader(new StreamWrapperLoader()); $metadataOptions ??= MetadataOptions::empty()->withTypesManipulator( // Ext-soap is not able to work with duplicate types (see FAQ) // Therefore, we decided to combine all duplicate types into 1 big intersected type by default instead. diff --git a/test/Phpro/SoapClient/Soap/CodeGeneratorEngineFactoryTest.php b/test/Phpro/SoapClient/Soap/CodeGeneratorEngineFactoryTest.php new file mode 100644 index 00000000..bd45e710 --- /dev/null +++ b/test/Phpro/SoapClient/Soap/CodeGeneratorEngineFactoryTest.php @@ -0,0 +1,16 @@ +getMetadata()); + } +}