Где я могу разместить скрипты вида, необходимые помощникам вида (используя Zend_View и макет каталога по умолчанию)? - PullRequest
5 голосов
/ 08 октября 2010

У меня есть довольно сложная часть моего приложения, которая является редактором списков контроля доступа.Мне нужно повторно использовать его в нескольких местах, и я бы хотел, чтобы он мог загружаться всеми ajax-y и т.,Это просто - просто поместите $view->setHelperPath(APPLICATION_PATH . '/views/helpers', 'Cas_View_Helper'); в загрузчик для представления, и, похоже, все настроено для загрузки помощника вида.

Однако помощник действительно должен быть выведен с использованием скрипта вида.Есть ли стандартное место, куда я должен поместить это?

Ответы [ 4 ]

8 голосов
/ 19 октября 2010

Обычно, когда помощнику требуется скрипт вида, этот скрипт помещается в партиал.Расположение этого частичного может варьироваться в зависимости от вашей структуры каталогов, но стандарт:

application[/modules/name]/views/scripts/partials/

Вы можете написать помощник с чем-то вроде этого:

class Cas_View_Helper_Foo extends Zend_View_Helper_Abstract 
{
    protected $partial = 'partials/foo.phtml';
    protected $view = null;

    // Render the partial here
    public function foo($params)
    {
        $this->view->partial($this->partial, $params);
    }

    // Specifying this method Zend_View will inject the view here
    public function setView(Zend_View_Interface $view)
    {
        $this->view = $view;
    }

}
1 голос
/ 22 октября 2010

Не существует единого стандарта, рекомендации или чего-либо еще, что можно было бы сделать.ZF, будучи настолько гибким, насколько это возможно, оставляет на ваше усмотрение то, что лучше для вашего приложения.Я воспользуюсь этим ответом для сравнения текущих решений.

Ответ Кейна - это решение, к которому, как мне кажется, приходит большинство людей.Лично у меня есть свой собственный поворот: application[/modules/name]/views/scripts/helpers/{your helper}/blah.phtml, который позволяет вам не иметь конфликтующих частичных имен, и иметь возможность легко перемещаться к файлу помощников вашего представления.

Хотя это все еще отстой в вопросах модульности, помощники представления должныбыть установленным как минимум в двух местах.В качестве альтернативы другое популярное решение заключается в следующем:

application[/modules/name]/views/helpers/{your helper}.php
application[/modules/name]/views/helpers/{your helper}/{view scripts}.phtml

, который обеспечивает немного лучшую модульность для ваших помощников по просмотру.

1 голос
/ 19 октября 2010

Вы всегда можете добавить «общий» путь просмотра, используя

$view->addScriptPath('/path/to/shared/view/scripts')

http://framework.zend.com/manual/en/zend.view.controllers.html#zend.view.controllers.script-paths.

Также посмотрите, как Zend_Paginator обрабатывает частичную визуализацию вида.

0 голосов
/ 19 октября 2010

В папке просмотра вы делаете помощник папки.Здесь вы ставите вид помощников.

...