ZF-6607: Problem with Zend_Soap_Wsdl class loading
Description
{panel} 2) testSettingUnknownStrategyThrowsException(Zend_Soap_WsdlTest) Zend_Loader::include(Zend/Soap/Wsdl/Strategy/UnknownStrategyType.php): failed to open stream: No such file or directory /home/cawa/ZendFramework/svn/framework/branches/release-1.8/library/Zend/Loader.php:83 /home/cawa/ZendFramework/svn/framework/branches/release-1.8/library/Zend/Loader.php:83 /home/cawa/ZendFramework/svn/framework/branches/release-1.8/library/Zend/Loader.php:83 /home/cawa/ZendFramework/svn/framework/branches/release-1.8/library/Zend/Loader/Autoloader.php:443 /home/cawa/ZendFramework/svn/framework/branches/release-1.8/library/Zend/Loader/Autoloader.php:125 /home/cawa/ZendFramework/svn/framework/branches/release-1.8/library/Zend/Soap/Wsdl.php:144 /home/cawa/ZendFramework/svn/framework/branches/release-1.8/library/Zend/Soap/Wsdl.php:100
3) testAddComplexTypeOfNonExistingClassThrowsException(Zend_Soap_Wsdl_ArrayOfTypeComplexStrategyTest) Zend_Loader::include(Zend/Soap/Wsdl/UnknownClass.php): failed to open stream: No such file or directory /home/cawa/ZendFramework/svn/framework/branches/release-1.8/library/Zend/Loader.php:83 /home/cawa/ZendFramework/svn/framework/branches/release-1.8/library/Zend/Loader.php:83 /home/cawa/ZendFramework/svn/framework/branches/release-1.8/library/Zend/Loader.php:83 /home/cawa/ZendFramework/svn/framework/branches/release-1.8/library/Zend/Loader/Autoloader.php:443 /home/cawa/ZendFramework/svn/framework/branches/release-1.8/library/Zend/Loader/Autoloader.php:125 /home/cawa/ZendFramework/svn/framework/branches/release-1.8/library/Zend/Soap/Wsdl/Strategy/ArrayOfTypeComplex.php:55 /home/cawa/ZendFramework/svn/framework/branches/release-1.8/library/Zend/Soap/Wsdl.php:580 {panel}
Comments
Posted by Matthew Weier O'Phinney (matthew) on 2009-05-12T08:04:56.000+0000
This appears to have been corrected with other updates.
Posted by Alexander Veremyev (alexander) on 2009-05-25T01:27:04.000+0000
Problem still exists.
Posted by Alexander Veremyev (alexander) on 2009-05-25T04:37:15.000+0000
Problem appears only if full tests suite is passed. It seems some other test doesn't restore Zend_Loader state.
Posted by Alexander Veremyev (alexander) on 2009-05-25T06:50:47.000+0000
Problem is caused by registered autoload method (Zend_Loader_Autoloader::autoload()).
It tries to include file which doesn't exists. Thus correct behavior (false returned by class_exists() function) is changed to throwing error.
Posted by Alexander Veremyev (alexander) on 2009-05-25T11:23:24.000+0000
Fixed.
The problem was caused by Zend_LoaderTest setUp()/tearDown() methods - original loaders state wasn't restored.
BTW It illustrates a real problem of using autoloader with class_exist() method.