celiovmjr/simplerouter

一个轻量级、易于使用的PHP路由器,用于构建Web应用程序。

2.0.6 2024-07-31 23:33 UTC

This package is auto-updated.

Last update: 2024-10-01 10:48:50 UTC


README

SimpleRouter是一个PHP类,用于以简单有效的方式管理PHP Web应用程序中的路由。

安装

要使用SimpleRouter,只需将Router.php文件包含到您的PHP项目中,并配置适当的自动加载。

<?php
require_once 'Router.php';

示例用法

初始设置

use SimpleRouter\Application\Router;

$router = new Router();

定义路由

基本路由

$router->get('/', function($request) {
    echo "Hello, GET request!";
});

$router->post('/post', [MyController::class, 'postMethod']);

路由组和子组

$router->group('/api', function() use ($router) {
    // Subgroup '/v2'
    $router->subgroup('/v2', function() use ($router) {
        $router->get('/users', [UserController::class, 'getAll']);
        $router->post('/users', [UserController::class, 'create']);
    });

    // You can define more routes directly within the '/api' group
    $router->get('/status', function($request) {
        echo "API Status";
    });
});

命名路由

$router->group('/admin', function() use ($router) {
    $router->get('/dashboard', function($request) {
        echo "Welcome to Admin Dashboard!";
    })->name('admin.dashboard');
});

// Resolving a named route
$route = $router->route('admin.dashboard'); // Returns '/admin/dashboard'

运行应用程序

if ($router->dispatch()) {
    // Route found and processed successfully
} else {
    // Error handling
    $error = $router->error();
    echo "Error {$error->code}: {$error->message}";
}

可用方法

  • get($uri, $handler):定义一个GET路由。
  • post($uri, $handler):定义一个POST路由。
  • put($uri, $handler):定义一个PUT路由。
  • patch($uri, $handler):定义一个PATCH路由。
  • delete($uri, $handler):定义一个DELETE路由。
  • group($prefix, $handler):定义一个带有前缀的路由组。
  • subgroup($prefix, $handler):在现有组内定义路由子组。
  • dispatch():执行路由并处理相应的路由。
  • route($name):返回与命名路由关联的URI。
  • error():如果有错误信息,返回一个包含错误信息的stdClass对象。

优点

  • 模块化路由:轻松将路由组织到组和子组中,以维护结构化的应用程序架构。
  • 灵活的路由:支持动态和静态路由、闭包和控制器方法。
  • 错误处理:提供对路由分发失败的错误处理。