dart_roman/router

Symple class for routing

v1.0.5 2018-12-06 17:55 UTC

This package is auto-updated.

Last update: 2024-12-07 08:49:04 UTC


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()