ZF-4713: Use Strategy pattern to switch between different AutoDiscover Handling Mechanisms

Issue Type: Improvement Created: 2008-10-26T15:40:51.000+0000 Last Updated: 2008-11-13T14:10:15.000+0000 Status: Resolved Fix version(s): - 1.7.0 (17/Nov/08)

Reporter: Benjamin Eberlei (beberlei) Assignee: Benjamin Eberlei (beberlei) Tags: - Zend_Soap_Wsdl

Related issues: - ZF-3900



WSDL Generation has many twists between different frameworks and languages. Allowing a strategy pattern to handle the programmers preferences in which way a WSDL file should be auto-generated would be a great addition to flexibility of this component. It would allow to handle complex types based on the currently set strategy.

Refactoring could be done in a non BC way with implementing the current AutoDiscover mechanism as default mechanism and add additional strategies that can overwrite the default behaviour via a setter method, setDiscoverStrategy().

Then specific strategies that support complex types in Java Frameworks and .NET out of the box could be added.


Posted by Benjamin Eberlei (beberlei) on 2008-10-26T15:42:55.000+0000

Fixing the issues with additional Array and ComplexType support should be handled within this refactoring of Zend_Soap that adds different autodiscoviering strategies.

Posted by Benjamin Eberlei (beberlei) on 2008-11-01T04:17:23.000+0000

Refactoring of Zend_Soap_Wsdl completed.

  • It now has a setComplexTypeStrategy() function that takes any class that implements Zend_Soap_Wsdl_Strategy_Interface.
  • The Constructor of Zend_Soap_Wsdl changed its meaning in parameter 3. Before it was boolean $extractComplexTypes. Boolean support is still supported, but you can additionaly give a string class name or an instance of a Zend_Soap_Wsdl_Strategy_Interface class.

Further strategies that implement ArrayOf functionality will be added to close the depandend issues.

Posted by Wil Sinclair (wil) on 2008-11-13T14:10:15.000+0000

Changing issues in preparation for the 1.7.0 release.

Have you found an issue?

See the Overview section for more details.


© 2006-2018 by Zend, a Rogue Wave Company. Made with by awesome contributors.

This website is built using zend-expressive and it runs on PHP 7.