Невозможно инициализировать помощники Jquery (Zendx) и View в Bootstrap.php (ZF: 1.10.8) - PullRequest
1 голос
/ 13 марта 2011

Я не могу инициализировать помощники Jquery (Zendx) и View в Bootstrap.php (ZF: 1.10.8)

Но я не могу инициализировать то же самое в методе init () каждого контроллера.

// My Bootstrap.php

<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{

    protected function _initView()
    {
            $view = new Zend_View();
            $view->doctype('XHTML1_STRICT');
        $view->addHelperPath('Vapps/View/Helper/','Vapps_View_Helper');
        $view->addHelperPath('ZendX/JQuery/View/Helper','ZendX_JQuery_View_Helper');
            return $view;
    }
}

Ниже приведена ошибка при запуске простого контроллера:

Fatal error: Uncaught exception 'Zend_Loader_PluginLoader_Exception' with message 'Plugin by name 'JQuery' was not found in the registry; used paths: Zend_View_Helper_: Zend/View/Helper/:/opt/lampp/htdocs/schooldir/application/views/helpers/' in /opt/lampp/htdocs/schooldir/library/Zend/Loader/PluginLoader.php:412 Stack trace: #0 /opt/lampp/htdocs/schooldir/library/Zend/View/Abstract.php(1174): Zend_Loader_PluginLoader->load('JQuery') #1 /opt/lampp/htdocs/schooldir/library/Zend/View/Abstract.php(610): Zend_View_Abstract->_getPlugin('helper', 'jQuery') #2 /opt/lampp/htdocs/schooldir/library/Zend/View/Abstract.php(336): Zend_View_Abstract->getHelper('jQuery') #3 [internal function]: Zend_View_Abstract->__call('jQuery', Array) #4 /opt/lampp/htdocs/schooldir/application/layouts/scripts/layout.phtml(29): Zend_View->jQuery() #5 /opt/lampp/htdocs/schooldir/library/Zend/View.php(108): include('/opt/lampp/htdo...') #6 /opt/lampp/htdocs/schooldir/library/Zend/View/Abstract.php(880): Zend_View->_run('/opt/lampp/htdo...') #7 /opt/lamp in /opt/lampp/htdocs/schooldir/library/Zend/Loader/PluginLoader.php on line 412

Я не получаюта же ошибка, если я использую следующий init () в моем контроллере.

class ViewhelperexampleController extends Zend_Controller_Action
{


    public function init() {

    $this->view->addHelperPath('ZendX/JQuery/View/Helper','ZendX_JQuery_View_Helper');
    $this->view->addHelperPath('Vapps/View/Helper/','Vapps_View_Helper');


    }



    public function indexAction()
    {


    }


}

Пожалуйста, помогите мне.Заранее спасибо.

1 Ответ

1 голос
/ 13 марта 2011

Вы можете добавить Установку для ваших помощников по просмотру в ваш application.ini (вместо вашего метода initView):

resources.view.helperPath.ZendX_JQuery_View_Helper = "ZendX/JQuery/View/Helper"
pluginPaths.ZendX_Application_Resource = "ZendX/Application/Resource"

Или, если вам нужен ваш собственный загрузчик, попробуйте использовать «существующий объект представления»:

protected function _initView()
{       
   $this->bootstrap('view'); 
   $view = $this->getResource('view');
   $view->doctype('XHTML1_STRICT');

   // better use " instead of ' , seems to be an bug
   $view->addHelperPath("Vapps/View/Helper/",'Vapps_View_Helper');
   $view->addHelperPath("ZendX/JQuery/View/Helper",'ZendX_JQuery_View_Helper');
   return $view;
}
...