Reputation: 2265
I have a problem with setting Zend_Routing in ini file. While the routes were defined in Bootstrap.php everything worked great. However I decided to move route definitions to separate file because of the growing number of them. So I created a route.ini file in my /configs folder and defined routes there. All routes looks like this:
;login routes.login.route = "login" routes.login.defaults.controller = "auth" routes.login.defaults.action = "login" routes.lang_login.route = ":lang/login" routes.lang_login.defaults.controller = "auth" routes.lang_login.defaults.action = "login" routes.lang_login.reqs.lang = "^[a-z]{2}$" rotues.logout.route = "logout" routes.logout.defaults.controller = "auth" routes.logout.defaults.action = "logout" rotues.lang_logout.route = ":lang/logout" routes.lang_logout.defaults.controller = "auth" routes.lang_logout.defaults.action = "logout" routes.lang_logout.reqs.lang = "^[a-z]{2}$" ;regulation routing routes.regulation_edition.route = "regulations/:edition" routes.regulation_edition.defaults.controller = "regulations" routes.regulation_edition.defaults.action = "show" routes.regulation_edition.reqs.edition = "^[0-9]{4}-[0-9]{4}$" routes.lang_regulation_edition.route = ":lang/regulations/:edition" routes.lang_regulation_edition.defaults.controller = "regulations" routes.lang_regulation_edition.defaults.action = "show" routes.lang_regulation_edition.reqs.edition = "^[0-9]{4}-[0-9]{4}$" routes.lang_regulation_edition.reqs.lang = "^[a-z]{2}$" routes.regulation_edit_edition.route = "regulations/edit/:edition" routes.regulation_edit_edition.defaults.controller = "regulations" routes.regulation_edit_edition.defaults.action = "edit" routes.regulation_edit_edition.reqs.edition = "^[0-9]{4}-[0-9]{4}$" routes.lang_regulation_edit_edition.route = ":lang/regulations/edit/:edition" routes.lang_regulation_edit_edition.defaults.controller = "regulations" routes.lang_regulation_edit_edition.defaults.action = "edit" routes.lang_regulation_edit_edition.reqs.edition = "^[0-9]{4}-[0-9]{4}$" routes.lang_regulation_edit_edition.reqs.lang = "^[a-z]{2}$" ;applications rotues.application.route = "application/:id" routes.application.defaults.controller = "applications" routes.application.defaults.action = "show" routes.application.reqs.id = "^[0-9]+$" rotues.lang_application.route = ":lang/application/:id" routes.lang_application.defaults.controller = "applications" routes.lang_application.defaults.action = "show" routes.lang_application.reqs.lang = "^[a-z]{2}$" routes.lang_application.reqs.id = "^[0-9]+$" rotues.edit_application.route = "application/edit/:id" routes.edit_application.defaults.controller = "applications" routes.edit_application.defaults.action = "edit" routes.edit_application.reqs.id = "^[0-9]+$" rotues.lang_edit_application.route = ":lang/application/edit/:id" routes.lang_edit_application.defaults.controller = "applications" routes.lang_edit_application.defaults.action = "edit" routes.lang_edit_application.reqs.id = "^[0-9]+$" routes.lang_edit_application.reqs.lang = "^[a-z]{2}$" rotues.delete_application.route = "application/delete/:id" routes.delete_application.defaults.controller = "applications" routes.delete_application.defaults.action = "delete" routes.delete_application.reqs.id = "^[0-9]+$" rotues.lang_delete_application.route = ":lang/application/delete/:id" routes.lang_delete_application.defaults.controller = "applications" routes.lang_delete_application.defaults.action = "delete" routes.lang_delete_application.reqs.id = "^[0-9]+$" routes.lang_delete_application.reqs.lang = "^[a-z]{2}$" ;user routes.user.route = "user/:id" routes.user.defaults.controller = "users" routes.user.defaults.action = "show" routes.user.reqs.id = "^[0-9]+$" routes.lang_user.route = ":lang/user/:id" routes.lang_user.defaults.controller = "users" routes.lang_user.defaults.action = "show" routes.lang_user.reqs.id = "^[0-9]+$" routes.lang_user.reqs.lang = "^[a-z]{2}$" routes.edit_user.route = "user/edit/:id" routes.edit_user.defaults.controller = "users" routes.edit_user.defaults.action = "edit" routes.edit_user.reqs.id = "^[0-9]+$" routes.lang_edit_user.route = ":lang/user/edit/:id" routes.lang_edit_user.defaults.controller = "users" routes.lang_edit_user.defaults.action = "edit" routes.lang_edit_user.reqs.id = "^[0-9]+$" routes.lang_edit_user.reqs.lang = "^[a-z]{2}$" routes.delete_user.route = "user/delete/:id" routes.delete_user.defaults.controller = "users" routes.delete_user.defaults.action = "delete" routes.delete_user.reqs.id = "^[0-9]+$" routes.lang_delete_user.route = ":lang/user/delete/:id" routes.lang_delete_user.defaults.controller = "users" routes.lang_delete_user.defaults.action = "delete" routes.lang_delete_user.reqs.id = "^[0-9]+$" routes.lang_delete_user.reqs.lang = "^[a-z]{2}$" routes.promote_user.route = "user/promote/:id" routes.promote_user.defaults.controller = "users" routes.promote_user.defaults.action = "promote" routes.promote_user.reqs.id = "^[0-9]+$" routes.lang_promote_user.route = ":lang/user/promote/:id" routes.lang_promote_user.defaults.controller = "users" routes.lang_promote_user.defaults.action = "promote" routes.lang_promote_user.reqs.id = "^[0-9]+$" routes.lang_promote_user.reqs.lang = "^[a-z]{2}$" ;schools routes.edit_school.route = "school/edit/:id" routes.edit_school.defaults.controller = "schools" routes.edit_school.defaults.action = "edit" routes.edit_school.reqs.id = "^[0-9]+$" routes.lang_edit_school.route = ":lang/school/edit/:id" routes.lang_edit_school.defaults.controller = "schools" routes.lang_edit_school.defaults.action = "edit" routes.lang_edit_school.reqs.id = "^[0-9]+$" routes.lang_edit_school.reqs.lang = "^[a-z]{2}$" routes.delete_school.route = "school/delete/:id" routes.delete_school.defaults.controller = "schools" routes.delete_school.defaults.action = "delete" routes.delete_school.reqs.id = "^[0-9]+$" routes.lang_delete_school.route = ":lang/school/delete/:id" routes.lang_delete_school.defaults.controller = "schools" routes.lang_delete_school.defaults.action = "delete" routes.lang_delete_school.reqs.id = "^[0-9]+$" routes.lang_delete_school.reqs.lang = "^[a-z]{2}$"
In Bootstrap.php I put the following code
$this->bootstrap('frontController'); $router = $this->getResource('frontController')->getRouter(); $route_config = new Zend_Config_Ini(APPLICATION_PATH.'/configs/route.ini', 'production'); $router->addConfig($route_config, 'routes');
Now when i go to the main page, ie. i won't give any controller or action I want it to use default controller and action, namely 'index/index'. This is how the application worked while routes were defined in Bootstrap. But now, when they are in the ini file going to the main page triggers 'application/delete'. When I delete this routing the script will use route defined earlier. What is surprising these are not the last defined routes. I tried to add another route at the beginning of route.ini file,
routes.default.route = "/" routes.default.defaults.controller = "index" routes.default.defaults.action = "index"
But this didn't help.
Upvotes: 2
Views: 5045
Reputation: 2265
I managed to handle this somehow, although this is not real solution. First, I rewrite section application as it didn't work (don't know why, urls weren't created). After this the default routing was set to logout. When I moved login and logout routes to Bootstrap everything worked fine.
Upvotes: 0
Reputation: 14184
Don't you need to add a routes
section to the routes.ini
file?
[routes]
routes.login.route = "login"
routes.login.defaults.controller = "auth"
routes.login.defaults.action = "login"
; The rest of your routes...
Upvotes: 2