Zend Framework:需要有关如何实现控制器助手的建议

时间:2010-08-19 07:54:38

标签: zend-framework

我需要有关如何实现此操作助手的建议。目前,我有类似

的东西
class Application_Controller_Action_Helper_AppendParamsToUrl extends Zend_Controller_Action_Helper_Abstract {
    function appendParamsToUrl($params = array()) {
        $router = Zend_Controller_Front::getInstance()->getRouter();
        $url = $router->assemble($params);

        if (!empty($_SERVER['QUERY_STRING'])) {
            $url .= $_SERVER['QUERY_STRING'];
        }
        return $url;
    }
}

但正如你所看到的,我认为该函数应该是一个静态函数?但是如何找到这个Zend_Controller_Action_Helper的东西?

2 个答案:

答案 0 :(得分:3)

使该函数公开,并在您的BootStrap.php中确保控制器助手可以自动加载

// add paths to controller helpers
Zend_Controller_Action_HelperBroker::addPath( APPLICATION_PATH .'/controllers/helpers');

然后您应该可以通过

从控制器调用帮助程序
$this->_helper->appendParamsToUrl->appendParamsToUrl();

答案 1 :(得分:1)

您还可以将appendParamsToUrl()函数重命名为direct()

function direct( $params = array() ) {...}

在这种情况下,您将能够通过

从控制器访问它
$this->_helper->appendParamsToUrl( $params );