Model view controller Zend MVC加载配置基于Url中的参数。调度/路由器/控制器的正确位置在哪里?

Model view controller Zend MVC加载配置基于Url中的参数。调度/路由器/控制器的正确位置在哪里?,model-view-controller,zend-framework,zend-route,zend-controller,Model View Controller,Zend Framework,Zend Route,Zend Controller,我通过基于url的路由定义合作伙伴,例如 my.domain.com/:partner/:controller/:action 现在我想在调用前端控制器之前加载配置文件,即合作伙伴的数据库 我在哪里找到这个代码 如何获取/设置变量/db,使其稍后在控制器中可用 我知道我可以通过一个控制器助手来完成这项工作,但我想这并不是最好的做法?是的,a是我完成这项工作的方式: class MyPlugin extends Zend_Controller_Plugin_Abstract { pu

我通过基于url的路由定义合作伙伴,例如

my.domain.com/:partner/:controller/:action
现在我想在调用前端控制器之前加载配置文件,即合作伙伴的数据库

  • 我在哪里找到这个代码
  • 如何获取/设置变量/db,使其稍后在控制器中可用
我知道我可以通过一个控制器助手来完成这项工作,但我想这并不是最好的做法?

是的,a是我完成这项工作的方式:

class MyPlugin extends Zend_Controller_Plugin_Abstract
{
    public function routeShutdown(Zend_Controller_Request_Abstract $request)
    {
        switch($request->getParam('partner')) {
            //... do something based on the possibility
        }
    }
}

dispatchLoopStartup和preDispatch有什么区别也就是说,我只是重读了你的问题,这将发生在“fornt控制器被调用”之后。事实上,在“fornt控制器被称为”b/c之前,不可能完成您想做的事情。parram来自路由器,路由器来自前端控制器。我想你的意思是“在发出请求之前”,在这种情况下,你可以使用的最早的典当是routeShutdown,而且你知道这只会发生一次&preDispatch可以发生多次。更新答案我只是把它放到preDispatch中,这对我来说非常好。谢谢!