Hi, 
how to instance dispatcher and request objects in the bootstrap?
Thanks

Sergio

> Date: Sun, 16 Aug 2009 16:57:09 -0400
> From: [email protected]
> To: [email protected]
> Subject: Re: [fw-general] New Router Question
> 
> -- milesap <[email protected]> wrote
> (on Monday, 10 August 2009, 05:57 AM -0700):
> > This is the first time I need to change the default Zend Router, so I want 
> > to
> > make sure I'm doing it right. I need to have my links like so;
> > http://register.example.com/companyname/controller/action. 
> > 
> > I looked on this forum and found a solution that might work:
> > 
> > $route = new Zend_Controller_Router_Route(
> >         ':companyname/:controller/:action/*',
> >         array(
> >                 'module' => 'default',
> >                 'controller' => 'index',
> >                 'action' => 'index'
> >         )
> > );
> > $router->addRoute('newroute', $route); 
> > 
> > Is this the proper way to solve my problem? Finally, how would I be able to
> > determine the companyname in the link in my bootstrap file? Thanks so much
> > for your help!
> 
> If you will only have one module, yes, this will work. The companyname
> will then be pushed into the request object, and you can grab it using
> getParam('companyname').
> 
> If *all* controllers will be accessed this way, I'd recommend you set
> this as the "default" route (instead of "newroute"), to ensure that te
> companyname identifier is required for all controller/action pairs.
> 
> Finally, you should likely look into the route chaining mechanism:
> 
>     
> http://framework.zend.com/manual/en/zend.controller.router.html#zend.controller.router.routes.chain
> 
> In this case, you would do something like this:
> 
>     $companyRoute = new Zend_Controller_Router_Route(':companyname');
>     $defaultRoute = new Zend_Controller_Router_Route_Module(
>         array(),
>         $dispatcher,
>         $request
>     );
>     $chainRoute = new Zend_Controller_Router_Route_Chain();
>     $chainRoute->chain($companyRoute)
>                ->chain($defaultRoute);
> 
>     $router->addRoute('default', $chainRoute);
> 
> (You'll have to grab the dispatcher and request prior to this, obviously.)
> The above has the advantage of also allowing multiple modules in your
> application, while still requiring the companyname prefix.
> 
> -- 
> Matthew Weier O'Phinney
> Project Lead            | [email protected]
> Zend Framework          | http://framework.zend.com/

_________________________________________________________________
Taglia i costi con Messenger! Chiama e videochiama da PC a PC!
http://www.messenger.it/videoconversazioni.aspx

Reply via email to