четверг, 27 декабря 2012 г.

Zend Router

resources.router.routes.news.type = "Zend_Controller_Router_Route_Regex"
resources.router.routes.news.route = "news/(.*)\.html"
resources.router.routes.news.defaults.controller= "news"
resources.router.routes.news.defaults.action= "index"
resources.router.routes.news.defaults.name = "none"
resources.router.routes.news.map.1 = "name"
resources.router.routes.news.reverse = "news/%s.html"

разберем построчно
с 1ой строкой все понятно;
во 2ой задается регулярное выражение;
3,4,5 настройка контроллера, экшена и значения переменной name по умолчанию;
6 (предпоследняя) маппинг параметров у нас здесь один параметр и он будет присвоен переменной name;
7ая строка при генерации ссылок через вью хэлпер url будет использоватся это выражение.
 







resources.router.routes.id.type = "Zend_Controller_Router_Route_Regex"
resources.router.routes.id.route = "articles/(\w+)"
resources.router.routes.id.defaults.module = default
resources.router.routes.id.defaults.controller = articles
resources.router.routes.id.defaults.action = id
resources.router.routes.id.map.1 = "id"
resources.router.routes.id.reverse = "articles/%s"
Вы укажете Zend Framework при переходе на страницу типа articles/5 определить 5 как id.
Получить значение Вы можете розместив в action:


$this->getRequest()->getParam('id');
Zend router можно реализовать и в другом формате:








resources.router.routes.articles.type = "Zend_Controller_Router_Route_Regex"
resources.router.routes.articles.route = "articles/tag/(\w+)"
resources.router.routes.articles.defaults.module = default
resources.router.routes.articles.defaults.controller = articles
resources.router.routes.articles.defaults.action = tag
resources.router.routes.articles.map.1 = "tag"
resources.router.routes.articles.reverse = "articles/tag/%s"
Тут, соотвественно, данные будут в articles/tag/zend.
 

Комментариев нет: