Помощник пользовательского вида ZF 1.12 — не удалось открыть

Я работаю над реструктуризацией своего проекта Zend 1.12. У меня есть пара помощников:

  • OutputComplexForm.php
  • OutputDistributorsList.php

Я помещаю их в / application / views / helpers

Имена классов

  • Zend_View_Helper_OutputComplexForm
  • Zend_View_Helper_OutputDistributorsList

Как я понимаю, если у вас есть префикс Zend_View_Helper, вам не нужно добавлять какие-либо конфиги в application.ini

Теперь, когда я пытаюсь загрузить любую страницу (даже те, которые не используют помощников), я получаю сообщение об ошибке:

Message: Zend_Session::start() - /otms/vendor/zendframework/zendframework1/library/Zend/Loader.php(Line:134): Error #2 include_once(): Failed opening    'Zend/View/Helper/OutputComplexForm.php' for inclusion (include_path='/otms/application/../library:/otms/application/../library/phpseclib0.3.1:/otms/application/../library/Amazon:/otms/application/../library/USPS:/otms/application/../library/Composer:/otms/library:/otms/vendor/phpseclib/phpseclib/phpseclib:/otms/vendor/zendframework/zendframework1/library:.:/usr/share/php:/usr/share/pear')

Я что-то пропустил?

UPD

Я обнаружил, что ошибка произошла после вызова функции

$startedCleanly = session_start(); //line 482

в файле /Zend/Session.php. После этого вызова свойство Zend_Session_Exception :: $ sessionStartError содержит описанное сообщение об ошибке. Я до сих пор не вижу связи между началом сеанса и инициализирующим помощником вида.

0

Решение

Для классов приложений, которые вы пишете — вещи, которые появляются внутри ./application/* — обычно не должно быть в Zend_ псевдо-пространство имен. Скорее, они должны быть в appnamespace, как настроено в ./application/config/application.ini,

Пространство имен по умолчанию — «Application_», поэтому помощник вида называется MyHelper обычно хранится в файле ./application/views/helpers/MyHelper.php:

class Application_View_Helper_MyHelper extends Zend_View_Helper_Abstract
{
public function myHelper()
{
// do your stuff here
}
}

Обратите внимание, что имя класса в верхнем верблюжьем регистре MyHelper и метод нижнего верблюда myHelper(),

По вашему мнению, вы можете вызвать помощника вида с помощью:

<?php

$output = $this->myHelper();
// Do something with $output

С этими соглашениями по пространству имен, имени класса и расположению / имени файла, а также синтаксису вызова загрузчик плагинов View должен иметь возможность находить, загружать и выполнять ваш метод view-helper.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]