views:

54

answers:

3

I create my view helper it located in /library/My/View/helpers/SpecialPurpose.php the class name is My_View_Helper_SpecialPurpose it have public function specialPurpose() it return some HTML

i register this path in bootstrap.php

$view = Zend_Layout::getMvcInstance()->getView(); $view->addBasePath('/my/view/helpers',"My_View_Helper");

when i tring specialPurpose();?> in any view .phtml

it trow exeption

Message: Plugin by name 'SpecialPurpose' was not found in the registry; used paths: My_View_Helper_Helper_: /my/view/helpers\helpers/ Zend_View_Helper_: Zend/View/Helper/;D:/WWW/zends/application/modules/default/views\helpers/

P.S I read many post in stackoverflow but not one solutions not helped If it possible weácan how do this task with bootstrap and application.ini zf version 1.10.3

+1  A: 

Rename:

My/View/helpers/SpecialPurpose.php

to:

My/View/Helper/SpecialPurpose.php

that is, change the name of the helpers folder. When adding the view helper path add it like:

$view->addHelperPath('My/View/Helper', 'My_View_Helper');

robertbasic
A: 

you can register view helper in application.ini too

resources.view.helperPath.My_View_Helper=APPLICATION_PATH "My/Views/Helpers"

if your path is APPLICATION_PATH "My/Views/Helpers"

user1400
A: 

I've tried etivarianty when i add

resources.view.helperPath.My_View_Helper=APPLICATION_PATH "My/Views/Helpers"

i see this message

Message: Plugin by name 'SpecialPurpose' was not found in the registry; used paths: Zend_View_Helper_: Zend/View/Helper/;D:/WWW/zends/application/modules/default/views\helpers/

Stack trace:

#0 D:\WebServer\ZendFramework\ZendFramework\library\Zend\View\Abstract.php(1170): Zend_Loader_PluginLoader->load('SpecialPurpose')
#1 D:\WebServer\ZendFramework\ZendFramework\library\Zend\View\Abstract.php(610): Zend_View_Abstract->_getPlugin('helper', 'specialPurpose')
#2 D:\WebServer\ZendFramework\ZendFramework\library\Zend\View\Abstract.php(336): Zend_View_Abstract->getHelper('specialPurpose')
#3 [internal function]: Zend_View_Abstract->__call('specialPurpose', Array)
#4 D:\WWW\zends\application\modules\default\views\scripts\index\index.phtml(5): Zend_View->specialPurpose()
#5 D:\WebServer\ZendFramework\ZendFramework\library\Zend\View.php(108): include('D:\WWW\zends\ap...')
#6 D:\WebServer\ZendFramework\ZendFramework\library\Zend\View\Abstract.php(880): Zend_View->_run('D:/WWW/zends/ap...')
#7 D:\WebServer\ZendFramework\ZendFramework\library\Zend\Controller\Action\Helper\ViewRenderer.php(897): Zend_View_Abstract->render('index/index.pht...')
#8 D:\WebServer\ZendFramework\ZendFramework\library\Zend\Controller\Action\Helper\ViewRenderer.php(918): Zend_Controller_Action_Helper_ViewRenderer->renderScript('index/index.pht...', NULL)
#9 D:\WebServer\ZendFramework\ZendFramework\library\Zend\Controller\Action\Helper\ViewRenderer.php(957): Zend_Controller_Action_Helper_ViewRenderer->render()
#10 D:\WebServer\ZendFramework\ZendFramework\library\Zend\Controller\Action\HelperBroker.php(277): Zend_Controller_Action_Helper_ViewRenderer->postDispatch()
#11 D:\WebServer\ZendFramework\ZendFramework\library\Zend\Controller\Action.php(523): Zend_Controller_Action_HelperBroker->notifyPostDispatch()
#12 D:\WebServer\ZendFramework\ZendFramework\library\Zend\Controller\Dispatcher\Standard.php(289): Zend_Controller_Action->dispatch('indexAction')
#13 D:\WebServer\ZendFramework\ZendFramework\library\Zend\Controller\Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#14 D:\WebServer\ZendFramework\ZendFramework\library\Zend\Application\Bootstrap\Bootstrap.php(97): Zend_Controller_Front->dispatch()
#15 D:\WebServer\ZendFramework\ZendFramework\library\Zend\Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#16 D:\WWW\zends\public\index.php(26): Zend_Application->run()
#17 {main}  

i change folder name same suggested and change in bootstrap

$view = Zend_Layout::getMvcInstance()->getView(); $view->addBasePath('/My/View/Helper',"My_View_Helper");

i have this message

Message: Plugin by name 'SpecialPurpose' was not found in the registry; used paths: My_View_Helper_Helper_: My/View/Helper\helpers/ Zend_View_Helper_: Zend/View/Helper/;D:/WWW/zends/application/modules/default/views\helpers/

i not have property in this $view->addHelperPath(); this property is appears when i create $view = new Zend_View();

In what may be the reason?

Alexandr