On 1/8/2009 12:05, Rob Allen wrote:
On 8 Jan 2009, at 09:26, Bart McLeod wrote:
You can of course have a base custom controller, but you do not need to.
Depending on what you need exactly you can use either an action helper
in the init method or a plugin or both a plugin and an action helper.
public function init(){
$this->_helper->myInit(); //instead of your six lines of code
}
Actually, if you have a My_Controller_Action::init(), you don't need to
define and init() at all in the child classes, whereas if you use a
helper, you do need to define the init() in the controllers where you
need the myInit().
Depends on the place where you register the helper, because
HelperBroker::__construct() will call the init() method of all
registered helpers at the time Zend_Controller_Action is instantiated.
Then, the same HelperBroker will call the preDispatch() and
postDispatch() method of all helpers before and, respectively, after
Zend_Controller_Action::dispatch().
There's a nice representation of this process here:
http://surlandia.com/wp-content/uploads/2008/11/zf-dispatch-lifecycle-bw.jpg
So, IMHO, a helper could be the solution, the only issue remaining might
be the place to register the helper and then what callback method to
use, init() or preDispatch().
Regards,
Rob...