Description

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.

Comments

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.