ilias / rhetoric
针对使用PHP处理路由的包
1.0.1
2024-08-06 23:27 UTC
Requires
- php: >=8.0.0
Requires (Dev)
- phpunit/phpunit: ^11.2
This package is auto-updated.
Last update: 2024-09-06 23:41:34 UTC
README
这个PHP路由系统允许您以简单和有序的方式定义和管理应用程序的路由,灵感来源于Laravel的路由系统。
安装
要安装此包,将其添加到您的 composer.json
文件中
{ "require": { "ilias/rhetoric": "1.0.0" } }
或者简单地运行终端命令
composer require ilias/rhetoric
然后,运行以下命令来安装包
composer install
用法
步骤 1: 定义您的路由
创建一个文件来定义您的路由,例如,在您的项目根目录中,命名为 routes.php
<?php use Ilias\Rhetoric\Router\Router; Router::get("/", IndexController::class . "@handleApiIndex"); Router::get("/favicon.ico", IndexController::class . "@favicon"); Router::get("/asset", AssetController::class . "@instruction"); Router::group(['prefix' => '/asset'], function ($router) { $router->group(['prefix' => '/type/{type}'], function ($router) { $router->get("/name/{name}", AssetController::class . "@getAssetByName"); $router->get("/id/{id}", AssetController::class . "@getAssetById"); }); }); Router::get("/debug", DebugController::class . "@showEnvironment");
步骤 2: 设置路由器
在应用程序的入口点,通常是 index.php
,设置路由器以处理传入的请求
<?php require_once __DIR__ . '/vendor/autoload.php'; require_once __DIR__ . '/routes.php'; use Ilias\Rhetoric\Router\Router; Router::setup();
步骤 3: 创建控制器
创建您的控制器类以处理请求。例如,创建 IndexController.php
<?php namespace Ilias\Rhetoric\Controller; class IndexController { public function handleApiIndex() { echo "Welcome to the API!"; } public function favicon() { // Handle favicon request } }
类似地,根据需要创建其他控制器类,如 AssetController.php
和 DebugController.php
。
步骤 4: 处理中间件(可选)
如果您想使用中间件,创建一个实现 Ilias\Rhetoric\Middleware\Middleware
的中间件类
<?php namespace Ilias\Rhetoric\Middleware; use Ilias\Rhetoric\Middleware\Middleware; class ExampleMiddleware implements Middleware { public static function handle() { // Middleware logic here } }
然后,将中间件应用于您的路由或路由组
Router::get("/protected", IndexController::class . "@protectedMethod", [ExampleMiddleware::class]); Router::group(['prefix' => '/admin', 'middleware' => [ExampleMiddleware::class]], function ($router) { $router->get("/dashboard", AdminController::class . "@dashboard"); });
步骤 5: 分发路由
使用 Request
静态方法 dispatch()
,您可以处理当前路由
<?php Request::dispatch($requestMethod, $requestUri);
动态参数
使用 Request
静态属性 $params
,您可以访问一个关联数组
<?php Router::get("/user/{username}/config", Authenticate::class . "@userConfigurations");
当您访问路由 http://your.dev.api.com/user/iloElias/config
时,参数将存储在 Request::$params
中,如下所示
echo Request::$params["username"] //"iloElias"
说明
-
::class
建议使用对您的类的静态引用,以便代码确切知道要使用哪个类