diff --git a/DependencyInjection/BeSimpleSoapExtension.php b/DependencyInjection/BeSimpleSoapExtension.php index e7ca025..7e260ab 100644 --- a/DependencyInjection/BeSimpleSoapExtension.php +++ b/DependencyInjection/BeSimpleSoapExtension.php @@ -60,8 +60,8 @@ class BeSimpleSoapExtension extends Extension $options = $container ->getDefinition('besimple.soap.context.'.$bindingSuffix) - ->getArgument(7); + ->getArgument(4); - $definition->replaceArgument(7, array_merge($options, $config)); + $definition->replaceArgument(4, array_merge($options, $config)); } } diff --git a/Resources/config/webservice.xml b/Resources/config/webservice.xml index 0722411..045039b 100644 --- a/Resources/config/webservice.xml +++ b/Resources/config/webservice.xml @@ -6,7 +6,7 @@ BeSimple\SoapBundle\WebServiceContext %kernel.cache_dir%/webservice - BeSimple\SoapBundle\ServiceBinding\RpcLiteralRequestHeaderMessageBinder + BeSimple\SoapBundle\ServiceBinding\RpcLiteralRequestHeaderMessageBinder BeSimple\SoapBundle\ServiceBinding\RpcLiteralRequestMessageBinder BeSimple\SoapBundle\ServiceBinding\RpcLiteralResponseMessageBinder BeSimple\SoapBundle\ServiceBinding\DocumentLiteralWrappedRequestMessageBinder @@ -20,40 +20,31 @@ - - - %besimple.soap.cache_dir% %kernel.debug% + %%besimple.soap.binder.request_header.rpcliteral.class%% + %besimple.soap.binder.request.rpcliteral.class% + %besimple.soap.binder.response.rpcliteral.class% - - - %besimple.soap.cache_dir% %kernel.debug% + %%besimple.soap.binder.request_header.documentwrapped.class%% + %besimple.soap.binder.request.documentwrapped.class% + %besimple.soap.binder.response.documentwrapped.class% - - - - - - - - - diff --git a/Resources/doc/tutorial/array.rst b/Resources/doc/tutorial/array.rst index 32b28ff..7972624 100644 --- a/Resources/doc/tutorial/array.rst +++ b/Resources/doc/tutorial/array.rst @@ -15,12 +15,12 @@ Controller class DemoController extends ContainerAware { /** - * @Soap\Method("isString") - * @Soap\Param("strings", phpType = "string[]") - * @Soap\Result(phpType = "boolean") + * @Soap\Method("hello") + * @Soap\Param("names", phpType = "string[]") + * @Soap\Result(phpType = "string") */ - public function helloAction(array $strings) + public function helloAction(array $names) { - return new SoapResponse(true); + return new SoapResponse("Hello ".implode(', ', $names)); } } \ No newline at end of file diff --git a/WebServiceContext.php b/WebServiceContext.php index c676a45..d43c3ac 100644 --- a/WebServiceContext.php +++ b/WebServiceContext.php @@ -27,9 +27,6 @@ use Symfony\Component\Config\Loader\LoaderInterface; */ class WebServiceContext { - private $requestHeaderMessageBinder; - private $requestMessageBinder; - private $responseMessageBinder; private $typeRepository; private $converterRepository; @@ -41,14 +38,10 @@ class WebServiceContext private $serviceBinder; private $serverFactory; - public function __construct(LoaderInterface $loader, DumperInterface $dumper, MessageBinderInterface $requestHeaderMessageBinder, MessageBinderInterface $requestMessageBinder, MessageBinderInterface $responseMessageBinder, TypeRepository $typeRepository, ConverterRepository $converterRepository, array $options) { + public function __construct(LoaderInterface $loader, DumperInterface $dumper, TypeRepository $typeRepository, ConverterRepository $converterRepository, array $options) { $this->loader = $loader; $this->wsdlFileDumper = $dumper; - $this->requestHeaderMessageBinder = $requestHeaderMessageBinder; - $this->requestMessageBinder = $requestMessageBinder; - $this->responseMessageBinder = $responseMessageBinder; - $this->typeRepository = $typeRepository; $this->converterRepository = $converterRepository; @@ -92,7 +85,12 @@ class WebServiceContext public function getServiceBinder() { if (null === $this->serviceBinder) { - $this->serviceBinder = new ServiceBinder($this->getServiceDefinition(), $this->requestHeaderMessageBinder, $this->requestMessageBinder, $this->responseMessageBinder); + $this->serviceBinder = new ServiceBinder( + $this->getServiceDefinition(), + new $this->options['binder_request_header_class'](), + new $this->options['binder_request_class'](), + new $this->options['binder_response_class']() + ); } return $this->serviceBinder;