Issue Type: Bug Created: 2010-04-29T07:22:00.000+0000 Last Updated: 2010-08-21T19:58:40.000+0000 Status: Resolved Fix version(s): - 1.10.1 (10/Feb/10)
Reporter: Tomáš Fejfar (email@example.com) Assignee: Ramon Henrique Ornelas (ramon) Tags: - Zend_Loader
Related issues: Attachments:
Zend_Loader_PluginLoader uses the Zend_Loader::isReadable() method. It uses @fopen($filename) to see if file exists, with third parameter set to true (=use include_path).
The "/library/Zend/" folder is not in include path (only "/library/" is). But when itteration over include paths ends, the fopen() function tries current folder (which is /library/Zend/"). And when the path is same as Zend path (=Controller/Action/Helper/) the class gets resolved. And Zend_Loader::isReadable() returns true.
The value is recieved in Zend_Loader_PluginLoader. Because the file was readable Zend_Loader_PluginLoader tries to include it. But because the include doesn't work with current folder (unless present in include path), and even if it would... current folder is "/library/Zend/Loader/" and not "/library/Zend/" anymore.
Warning is emited from the include call.
Fix for this is different user naming conventions for classes loaded by pluginloader or prefixing them with My_ etc.. I couldn't come up with patch, that would stop this behaviour except using is_readable with include paths in foreach, which was told to be extremly slow and not to be implemented.
But at least there should be a warning in manual that you shouldn't name your classes like that.
Posted by Ramon Henrique Ornelas (ramon) on 2010-08-21T19:58:38.000+0000
Resolved in version 1.10.1 see r20903.
Have you found an issue?
See the Overview section for more details.