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:
<?php abstract class My_View_Helper_Abstract { protected $_view; public function setView($view) { $this->_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:
<?php require_once 'My/View/Helper/Abstract.php'; class My_View_Helper_TreeUl extends My_View_Helper_Abstract { /** * Render a nested array as a set of nested <ul>s. * * @param array|instanceof Iterator $list * @return string */ function treeUl($list) { $output = ''; if (is_array($list) || $list instanceof Iterator) { if (count($list) > 0) { $output = "<ul>\n"; foreach ($list as $item) { $output .= "\t<li>"; if(is_string($item)) { $output .= $this->_view->escape($item); } else { $output .= $this->treeUl($item); } $output .= "</li>\n"; } $output .= "</ul>\n"; } } return $output; } }
Simple, isn't it ?!


