Issues

ZF-8803: View Helper Loader bug with no prefix

Description

I have a standard app structure : - application -- configs -- controllers -- forms -- models -- views --- helpers ---- XXX.php (class View_Helper_XXX extends Zend_View_Helper_Abstract) --- scripts -- library

With this autoloader : $moduleLoader = new Zend_Application_Module_Autoloader(array( 'namespace' => '', 'basePath' => APPLICATION_PATH ));

When call View_Helper_XXX in a view ($this->XXX()) ->

exception 'Zend_Loader_PluginLoader_Exception' with message 'Plugin by name 'XXX' was not found in the registry; used paths: ZendX_JQuery_View_Helper_: ZendX/JQuery/View/Helper/ Zend_View_Helper_: Zend/View/Helper/ :/my/app/dir/application/views/helpers/

The loader load my helper file, no problem, But It search for Zend_View_Helper_XXX So, If I change my class name from View_Helper_XXX to Zend_View_Helper_XXX, it works, it isn't logic it's name prefix is "Zend_"

PS : I have no problem to load Form_XX, Model_XXX

Comments

Hi,

Same issue here with the version 11.3 of the framework. If I read the doc, I should just need to create a View_Helper_XXX class in my views/helpers folder. Quote of the doc http://framework.zend.com/manual/en/… :

"This loader, Zend_Application_Module_Autoloader, comes with the following mappings:

forms/ => Form models/ => Model DbTable/ => Model_DbTable mappers/ => Model_Mapper plugins/ => Plugin services/ => Service views/ helpers => View_Helper filters => View_Filter"

I got everything (from, model, mappers, ...) working fine except for the helpers. So I create a really simple helper helper class name View_Helper_Test stored in views/helpers. And I made some echos in the Zend_Plugin_Loader interface. Intrestingly, here is what I have :

... Zend_Filter_Word_CamelCaseToDash | Zend/Filter/Word\CamelCaseToDash.php | isReadable | ClassExists Zend_Filter_StringToLower | Zend/Filter/StringToLower.php | isReadable | ClassExists Zend_View_Helper_Test | C:/Users/Olivier/Documents/Eclipse/workspace/dealecta.com/application/modules/default/views\helpers/Test.php | isReadable | Zend/View/Helper/Test.php CLASS NOT FOUND

The first echo is the class name the plugin loader is looking for. And I don't know why, but he is looking for a Zend_View_Helper_Test and not View_Helper_Test.

So Either, it is a bug either documentation is missing something.

Let me know.