Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dmitrymomot/meerkat-route
Модуль управления роутами для MeerkatCMF (on Kohana 3.3)
https://github.com/dmitrymomot/meerkat-route
Last synced: 3 days ago
JSON representation
Модуль управления роутами для MeerkatCMF (on Kohana 3.3)
- Host: GitHub
- URL: https://github.com/dmitrymomot/meerkat-route
- Owner: dmitrymomot
- License: mit
- Created: 2013-12-28T00:30:53.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2013-12-21T06:55:08.000Z (almost 11 years ago)
- Last Synced: 2023-03-27T13:26:47.458Z (over 1 year ago)
- Size: 58.6 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Модуль управления роутами для MeerkatCMF (on Kohana 3.3)
=============Модуль предназначен для того, чтобы делать правильный урл
"/news/123/edit/"
"/<controller>/<id>/<action>/"
вместо рекомендуемых дефолтных Kohana
Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array(
'controller' => 'welcome',
'action' => 'index',
));Помните, как это было у Артемия Лебедева:
http://www.artlebedev.ru/kovodstvo/sections/48/
>Правило: посетитель всегда должен получить осмысленное и предсказуемое содержимое, если он стер часть адреса до ближайшей косой черты.А что будет, если последовать этому правилу в урл /admin/news/edit/123 ?
Понятно, что надо редактировать, понятно, что новость, но какую?
С использованием же этого модуля все будет логично:
#### Пример использования
Meerkat\Base\Route::factory('/admin/news')
->controller('News')
->directory('Admin')
->with_item(true)
->put();
Создаст роуты
Действие
URL
Param
Controller:action
Показать все новости
/admin/news/
Controller_Admin_News::action_index
Показать одну новость
/admin/news/123
Request::current()->param('id')
Controller_Admin_News::action_item
Добавить новость
/admin/news/add
Controller_Admin_News::action_add
Редактировать новость
/admin/news/123/edit
Request::current()->param('id')
Controller_Admin_News::action_edit
Удалить новость
/admin/news/123/delete
Request::current()->param('id')
Controller_Admin_News::action_delete
Если есть необходимость использовать ЧПУ, то параметром метода ->with_item() надо передать соответствующее регулярное выражение, например
Meerkat\Base\Route::factory('/admin/news')
->controller('News')
->directory('Admin')
->with_item('([a-z-_0-9]+)')
->put();
Создаст роуты
Действие
URL
Param
Controller:action
Показать все новости
/admin/news/
Controller_Admin_News::action_index
Показать одну новость
/admin/news/putin-v-kremle
Request::current()->param('id')
Controller_Admin_News::action_item
Добавить новость
/admin/news/add
Controller_Admin_News::action_add
Редактировать новость
/admin/news/putin-v-kremle/edit
Request::current()->param('id')
Controller_Admin_News::action_edit
Удалить новость
/admin/news/putin-v-kremle/delete
Request::current()->param('id')
Controller_Admin_News::action_delete