Zend, доступны ли переменные вида внутри помощников вида? - PullRequest
4 голосов
/ 24 мая 2011

Мне интересно, доступны ли переменные представления Zend в моем классе помощника вида, не передавая их напрямую в качестве параметров

спасибо

Luca

Ответы [ 4 ]

6 голосов
/ 24 мая 2011

Поскольку все помощники вида имеют ссылку на представление в свойстве $view, ответ - да.

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

1 голос
/ 24 мая 2011

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

1 голос
/ 24 мая 2011

хорошо, вы можете получить доступ к форме $view внутри помощника вида, я приведу пример: в примере ниже вы можете установить и получить переменные вида

<?php

class App_View_Helper_Job extends Zend_View_Helper_Abstract {

    public function setView(Zend_View_Interface $view) {
        $this->view = $view;
    }

    public function job() {
           $this->view->var1 = "testing var1 ";
           $this->view->var2 = $this->view->var1;
    }
}
0 голосов
/ 04 мая 2013

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

$view = Zend_Registry::get('Zend_View');
/*
 * Check data available and set it to local variable
 */
if(isset($view->localeTranslations[$key]))
{
   $translate = $view->localeTranslations[$key];
}
...