claud / router
用于在PHP中创建路由的包
v2.1.0
2024-07-30 19:30 UTC
Requires (Dev)
- phpunit/phpunit: ^10.3
README
路由组件 是一个简单灵活的工具,用于管理PHP应用中的路由。此组件允许您定义路由并关联控制器函数或方法,简化了创建友好URL的Web应用。
特性
- 易于定义路由
- 支持带参数的路由
- 将控制器函数或方法关联到路由
- 支持请求和响应
- 支持每个路由的全球和局部中间件
安装
您可以通过Composer安装此组件。请在终端中运行以下命令
composer composer require claud/router
使用方法
以下是如何在PHP项目中使用此组件的示例
<?php require_once 'vendor/autoload.php'; use Router\Router\Router; $router = new Router(); $router->addRoute('/', function () { echo 'Bem-vindo à página inicial!'; }); //Para que o componente router encontre o controller, passe o caminho completo $router->addRoute('/perfil/{id}', [App\Controller\PerfilController::class,'show']); $router->prefix('/users', function(Router $router) { $router->addRoute('/edit/{id}', function ($id) { return "Rota com prefixo e parâmetro dinâmico {$id}"; }); $router->addRoute('/update/{id}', function ($id) { return "Rota com prefixo e parâmetro dinâmico {$id}"; }); }); $router->run();
默认情况下,使用的HTTP方法将是GET,但您可以通过在addRoute()函数中传递第三个参数(字符串$method)来切换方法
<?php require_once 'vendor/autoload.php'; use Router\Router\Router; $router = new Router(); $router->addRoute('/', [App\Controller\PerfilControlle::class, 'store'], 'POST'); $router->run();
您可以使用中间件来拦截请求。要创建中间件,只需实现同一包中的MiddlewareInterface接口。
除了接口合同外,我们还为您的实现提供了Request和Response类。
<?php require_once 'vendor/autoload.php'; use Router\Router\Router; use Router\Contracts\MiddlewareInterface; class GlobalMiddleware implements MiddlewareInterface { public function handle(Request $request, callable $next) { if (!isset($_SESSION['user'])) { return 'not authorized'; } return $next($request); } } class LocalMiddleware implements MiddlewareInterface { public function handle(Request $request, callable $next) { return $next($request); } } $router = new Router(); //Para adicionar globalmente $router->addMiddleware(new GlobalMiddleware()); // Para adicionar especifico para a rota $router->addRoute('/', [App\Controller\PerfilControlle::class, 'store'], 'POST', [new LocalMiddlware()]); $router->run();
贡献
如果您想为此项目做出贡献,请按照以下步骤操作
- 对存储库进行分支
- 创建一个具有描述性的分支:
git checkout -b minha-funcionalidade
- 进行更改,并在代码中添加相关注释
- 确保执行单元测试(如果适用)
- 发送一个包含您更改的pull request
许可证
本项目采用MIT许可证。
联系方式
如果您有任何疑问或需要帮助,请随时联系
- Cláudio Oliveira
- franciscoclaudiooliveira@gmail.com