Developing software in the Real World

Zend_View: Access the view from a view helper

It’s in the manual, but I thought I’d blog about my simple View Helper setup that ensures that I can get at the view with minimal effort.

Firstly we create a parent class:

_view = $view;
}
}

This class contains the code required by Zend_View to collect an instance of the view and assign it to a protected variable. All my view helpers extend this class and so I can acess the view using $this->_view. For instance:


s.
*
* @param array|instanceof Iterator $list
* @return string
*/
function treeUl($list)
{
$output = '';
if (is_array($list) || $list instanceof Iterator) {
if (count($list) > 0) {
$output = "

    \n";
    foreach ($list as $item) {
    $output .= "\t
  • ";
    if(is_string($item)) {
    $output .= $this->_view->escape($item);
    } else {
    $output .= $this->treeUl($item);
    }
    $output .= "
  • \n";
    }
    $output .= "

\n";
}
}
return $output;
}
}

Simple, isn’t it ?!

4 thoughts on “Zend_View: Access the view from a view helper

  1. When would you want to use this technique? I mean, what does it do? I realize this is painfully noob of me (realize that I am new to programming… sorry) but I don't see what this buys me.

  2. Mary,

    Generally, you use this when you need to access other view helpers. In the example, I needed access to the escape() view helper from within another one.

    The easiest way is to wrap up the boring bit into a parent class and then it's available whenever you need it without any extra work.

    Does that make sense?

    Regards,

    Rob…

Thoughts? Leave a reply

Your email address will not be published. Required fields are marked *