Hi, I have a situation very similar to yours, although I am not sure about the answer to your question, I have a quesiton for you: when you say you have several databases, what do you mean? do you mean one per customer/application?
Thanks Dan 2009/12/21 Guillaume ORIOL <[email protected]> > Working on an application that is the same for multiple customers, I had to > face a design option. > I wanted to avoid installing the application as many times as we had > customers (for maintenance reasons). > Therefore I chose to have a unique code installation but several databases. > Each customer would access its application by adding its account name to > the application base URL: > webapp.domain.com/account1/ > webapp.domain.com/account2/ > etc. > > Following this URL prefix are the regular MVC parameters, ie: > webapp.domain.com/account1/module/controller/action > > I define a default route replacement in my Bootstrap including the account > parameter (see below) and retrieve this special parameter from a > FrontController plugin where I setup the default database adapter. > > I encounter a problem with functions that build URLs (for instance > $view->url(...) or $redirector->gotoRoute(...), etc.). > All of these functions should add the current account parameter at the > beginning of the URL, but none of them is aware of it. > (It should also apply to other functions like $page->getHref() for > Zend_Navigation.) > > What design option would you suggest (overload all of these functions, > change dynamically the base URL of the application)? > > Thanks for any help > - - - - - > Here is the redefined default route: > $route = new Zend_Controller_Router_Route( > ':account/:module/:controller/:action/*', > array( > 'account' => 'demo', > 'module' => 'default', > 'controller' => 'index', > 'action' => 'index') > ); > $router->addRoute('default', $route); > > I would also like to make " > webapp.domain.com/account1/module/controller/action" equivalent to " > account1.webapp.domain.com/module/controller/action". I guess it is > possible with the Zend_Controller_Router_Route_Hostname, but did not try > already. > > $route = new Zend_Controller_Router_Route_Hostname( > ':account.webapp.domain.com', > array( > 'module' => 'default', > 'controller' => 'index', > 'action' => 'index' > ) > ); > -- > > Guillaume ORIOL > >
