dart_roman / router
Symple class for routing
Requires
- php: ^7.0
README
Класс маршрутизатор для web-приложений на PHP, позволяющий строить карты маршрутизации приложения.
Общие сведения
Класс поддерживает построение маршрутов привязанных к 4-м основным HTTP-методам по средствам 4-х простых методов:get()
, post()
, put()
, delete()
. Каждый метод принимает до 3-х параметров:
endpoint
- точка доступа построенная по принципуController@action
rule
- правила для соответствия маршрута точке доступа, напримерcalendar/edit
calendar/get-dates/{year}
match
- массиав правил для параметризованных элементов маршрута (вариативный параметр), например['year' => '\d{4}']
Для запуска работы маршрутизатора достаточно 2-х строк
use DartRoman\Route;
Route::start();
Группировка маршрутов
Все маршруты можно логически сгруппировать по файлам. Для этого все файлы должны лежать в одной папке (по умолчанию routes
) и подключать класс.
Расширение
Все базовые настройки можно переопределить при наследовании от класса, а именно:
$prefix
- Префикс пространства имен для контроллеров$separator
- Разделитель между префиксом и названием класса$routesDirectory
- Путь до папки с маршрутами
Пример использования
Файл routes/calendar.php
<?php
use DartRoman\Route;
Route::get('Calendar@show', 'calendar');
Route::get('Calendar@getDates', 'calendar/get-dates/{year}', ['year' => '\d{4}']);
Route::post('Calendar@edit', 'calendar/edit');
Все маршруты взаимодействуют с классом Calendar
. Где каждый из них соответствует следующим методам:
public function show()
public function getDates(int $year)
(атрибут$year
автоматически передается в метод изurl
)public function edit()