подпапки в представлениях/помощниках zend

Я хочу создать разные папки внутри моих представлений/помощников и добавить в них свои вспомогательные классы представлений. Но я не могу получить доступ к этим классам.

Как лучше всего это сделать?

Я попытался настроить параметры файла application.ini ... но не повезло

Это то, что я установил в своем ini-файле:

resources.view.helperPath = APPLICATION_PATH "/views/helpers/models"
resources.view.helperPath = APPLICATION_PATH "/views/helpers/test"

models и test — это подпапки внутри моей папки /views/helpers.

Может ли кто-нибудь предложить лучшее решение?


person lak    schedule 05.07.2012    source источник


Ответы (3)


С вашими текущими настройками в вашем application.ini вы только добавляете другой путь для помощников представления по умолчанию из Zend (Zend_View_Helper_).

Вы должны указать префикс класса, который вы хотите использовать:

; View_Helper_Models is the class prefix
resources.view.helperPath.View_Helper_Models = APPLICATION_PATH "/views/helpers/models"
; View_Helper_Test is the class prefix
resources.view.helperPath.View_Helper_Test = APPLICATION_PATH "/views/helpers/test"

Теперь приложение знает, как сопоставить имя вашего класса с путем. В качестве альтернативы вы можете включить это в своем основном Bootstrap.php:

protected function _initViewHelper()
{
   $this->bootstrap( 'view' );
   $this->_view = $this->getResource( 'view' );

   $this->_view->addHelperPath( APPLICATION_PATH . '/views/helpers/models',
                                'View_Helper_Models' );
   $this->_view->addHelperPath( APPLICATION_PATH . '/views/helpers/test',
                                'View_Helper_Test' );
}

ПРИМЕЧАНИЕ. Путь должен быть указан в правильном регистре.

person ByteNudger    schedule 05.07.2012

В вашем файле конфигурации добавьте эти две строки, вторая строка - это ваш собственный путь к помощникам.

resources.view[] =    
resources.view.helperPath.Zend_View_Helper = APPLICATION_PATH "/../library/FolderA/FolderB/helpers"

При создании помощника укажите имя класса, подобное этому

<?php
class Zend_View_Helper_Foo extends Zend_View_Helper_Abstract
{
   public function foo(){
       echo 'hello world';
   }
}

и вызовите этот помощник в любом из ваших файлов просмотра как $this->foo();

person coolguy    schedule 06.07.2012

Я думаю, что вам нужно только указать правильное имя ваших вспомогательных классов представления! Например, вы создаете файл «Mine.php» внутри APPLICATION_PATH «/views/helpers/models», а затем называете класс class View_Helper_Models_Mine.

Надеюсь, это поможет.

С уважением, Ахмед Б.

person Ahmed B    schedule 05.07.2012