All pastes #553977 Raw Edit

Miscellany

public php v1 · immutable
#553977 ·published 2007-06-09 23:24 UTC
rendered paste body
<?php/** * Assign.php *  * @category   Naneau * @package    Naneau_Action_Helper * @copyright  Copyright (c) 2007 Maurice Fonk - http://naneau.nl * @version    0.2 *//** * action helper base class */require_once 'Zend/Controller/Action/Helper/Abstract.php';/** * Naneau_Action_Helper_Assign *  *  * Action helper for assigining fields to the action controllers. Has built in * option to assign all action helpers as fields. * * @category   Naneau * @package    Naneau_Action_Helper * @copyright  Copyright (c) 2007 Maurice Fonk - http://naneau.nl */class Naneau_Action_Helper_Assign extends Zend_Controller_Action_Helper_Abstract {    /**     * use underscore?     *      * Using underscores is the proper way of doing it, given the coding     * standard for the Zend Framework.     *     * @var bool     */    private $_useUnderscore = true;    /**     * assign all helpers in preDispatch?     *     * @var bool     */    private $_autoFindHelpers = true;    /**     * array of plugins     *     * @var Zend_Controller_Action_Helper_Abstract[]     */    private $_plugins = array();    /**     * constructor     *      * @see assign()     * @param bool $autoFindHelpers automatically assign _all_ action helpers     * @param bool $useUnderscore use an underscore     */    public function __construct($autoFindHelpers = true, $useUnderscore = true) {        $this->_autoFind = $autoFind;        $this->_useUnderscore = $useUnderscore;    }    /**     * on every dispatch assign helpers     * @return void     */    public function preDispatch() {        if ($this->_autoFindHelpers) {            //find all helpers            foreach (Zend_Controller_Action_HelperBroker::getExistingHelpers() as $helper) {                $name = $helper->getName();                $this->assign($name, $helper);            }        }        $controller = $this->getActionController();        //current action controller        foreach($this->_plugins as $name => $plugin) {            $controller->$name = $plugin;        }    }    /**     * add an object to be added     *      * @param string $name     * @param object $obj     * @return void     */    public function assign($name, $obj)    {        if ($this->_useUnderscore) {            $name = '_' .  ltrim($name, '_');            //remove any possible underscores that are there and add one        }        $this->_plugins[$name] = $obj;        return $this;        //return self for chaining    }}