arveres / route
v1.1.0
2022-12-18 22:37 UTC
Requires
- php: ^8.0
Requires (Dev)
- phpunit/php-code-coverage: ^9.2
- phpunit/phpunit: ^9.5
- symfony/var-dumper: ^6.2
This package is auto-updated.
Last update: 2024-09-19 02:16:14 UTC
README
Arveres routes 是一个简单的路由管理器,具有使用 PHP 的基本路由功能。
安装
要安装 Arveres routes,您可以直接在终端使用 composer 命令。
$ composer require arveres/route
或者,您可以在您的 composer.json
文件中添加以下行。
{
"require": {
"arveres/route": "^1.1"
}
}
然后,执行以下命令
$ composer install
使用示例
require_once 'vendor/autoload.php'; use ArveresRoute\Http\Router; $router = new Router; //Instância de Router //Rota básica GET $router->get('/', [HomeController::class, 'index']); //Rota básica POST $router->post('/user/register', [UserController::class, 'store']); // Rotas com parâmetros dinâmicos $router->get('/user/{id}', [UserController::class, 'show']); // Rotas com middlewares // Middlewares passado como array no terceiro parâmetro. // O nome do middleware passado como parâmetro deve estar registrado com a classe Queue $router->get('/list', [HomeController::class, 'list'], ['stringTrim']); // Executa as rotas $router->run();
控制器示例
class HomeController { // Todo controlador associado a rota possui como parâmetro // Uma instância de Request que pode ser omitido. public function index() { echo 'Página inicial :)'; } } class UserController { // Instância de Request como parâmetro ao método controlador public function store(Request $request) { UserModel::create($request->allPost()); //... } // Em rotas dinâmicas, o método do controlador associado // Recebe como parâmetro o nome da variável da rota dinâmica // OBS: Os parâmetros devem seguir a ordem das variáveis da rota // Por fim possuem uma instância de Request public function show($id, Request $request) { UserModel::findBy($id): /... } }
中间件示例
use ArveresRoute\Http\Middlewares\Queue; // Referência para Queue // Registra middlewares Queue::routeMiddleware([ 'maintenance' => \ArveresRoute\Http\Middlewares\Maintenance::class, 'stringTrim' => \ArveresRoute\Http\Middlewares\trimString::class ]); // Define middleware padrão para todas as rotas Queue::middlewareDefault([ 'maintenance', ]);
中间件示例
// A biblioteca possui um interface opcional que pode ser utilizado nas classes de middleware interface MiddlewareInterface // ArveresRoute\Http\Middlewares; { public function handle(Request $request, Closure $next); } // Exemplo de middleware class Maintenance implements MiddlewareInterface { public function handle(Request $request, Closure $next) { $ItIsInMaintenance = true; if (true === $ItIsInMaintenance) { throw new \Exception('A aplicação está em manutenção. Por favor, tente mais tarde', 200); } return $next($request); } }
要求
- PHP 8.0 或更高版本