[■]
codesaur/router
1=[↕]
1:1 ══ composer require codesaur/router
codesaur/router · v6.0.1
Router
Хөнгөн, хурдан, объект-суурьтай маршрутчиллын (routing) компонент
[■]
Router
Динамик параметрүүд, нэртэй маршрутууд, reverse routing (URL үүсгэх), per-route middleware зэрэг бүх шаардлагатай боломжуудыг дэмждэг routing компонент. RouterInterface contract-ийн ачаар гуравдагч router-уудыг adapter-аар ороож codesaur/http-application дотор ашиглах боломжтой.
Онцлогууд
- GET / POST / PUT / PATCH / DELETE болон нийлмэл (POST_PUT, GET_POST) маршрут
- Төрөлтэй параметр: {int:id}, {uint:page}, {float:price}, {utf8:query}, {slug}
- Нэртэй маршрут, reverse routing: generate("name", [...])
- Client-side орлуулалтад бэлэн pattern("name") -> /news/{id}
- Per-route middleware - ->middleware([...]) chain хуримтлагдана
- match() нь тогтмол [callable, params, middleware] 3-tuple буцаана
- UTF-8 (кирилл, CJK) параметрийн дэмжлэг
Үндсэн классууд
| Класс | Үүрэг |
|---|---|
Router | Маршрут бүртгэх, тааруулах, URL үүсгэх үндсэн класс |
RouterInterface | Router-ийн бүрэн contract (match, generate, pattern, getRoutes) |
Route | Immutable value object - fluent ->name(), ->middleware() API |
Жишээ код
use codesaur\Router\Router;
$router = new Router();
// Энгийн GET маршрут / Simple GET route
$router->GET('/hello', function() {
echo 'Hello, World!';
});
// Динамик параметртэй маршрут / Route with dynamic parameters
$router->GET('/news/{int:id}', function(int $id) {
echo "News ID: $id";
})->name('news-view');
// Per-route middleware
$router->POST('/api/users', [UserController::class, 'create'])
->middleware([CsrfMiddleware::class, AuthMiddleware::class])
->name('users.create');
// Маршрут тааруулах / Match route
$result = $router->match('/news/10', 'GET');
if ($result !== null) {
[$callable, $params, $middleware] = $result;
\call_user_func_array($callable, $params);
}
// URL үүсгэх / Generate URL
$url = $router->generate('news-view', ['id' => 10]); // -> /news/10
$pattern = $router->pattern('news-view'); // -> /news/{id}
Тест ажиллуулах
composer test
[■]
Info
Суулгах
composer require codesaur/router
Шаардлага
- PHP 8.2.1+
- Composer
Баримт бичиг