brdev/router

类快速且极其简单。创建简化路由

1.9 2024-04-18 19:52 UTC

This package is auto-updated.

Last update: 2024-09-18 20:38:54 UTC


README

小巧、简单且不复杂。该路由器是一个具有MVC抽象的PHP路由组件。准备有RESTfull动词(GET、POST、PUT、PATCH和DELETE),在单独的层上工作,可以无密钥集成到您的应用中。

小、简单且不复杂。该路由器是一个具有MVC抽象的PHP路由组件。准备有RESTfull动词(GET、POST、PUT、PATCH和DELETE),在单独的层上工作,可以无密钥集成到您的应用中。

安装

路由器通过Composer提供

"brdev/router": "1.8"

或运行

composer require brdev/router

文档

有关如何使用路由器的详细信息,请参阅组件目录中的示例文件夹。要使用路由器,您需要将您的路由导航重定向到根路由文件(index.php),所有流量都必须在此处理。以下示例显示了如何操作:

有关如何使用路由器的详细信息,请参阅组件目录中的示例文件夹。要使用路由器,您需要将您的路由导航重定向到根路由文件(index.php),所有流量都必须在此处理。以下示例显示了如何操作:

Apache

RewriteEngine On
Options All -Indexes


# ROUTER HTTPS Redirect
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# ROUTER URL Rewrite
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?route=/$1 [L,QSA]

Nginx

location / {
     try_files $uri $uri/ /index.php?route=$uri&$args;
}
路由
<?php

use BRdev\Router\Router;
use BRdev\Router\Web\Web;

require __DIR__."/vendor/autoload.php";
 
//namespace
Router::namespace("BRdev\Router\Web");
Router::get('/','Web@home');
//or
Router::get('/',[Web::class,'web']);

Router::get('/sobre','Web@about');

//namespace
Router::namespace("BRdev\Router\App");
Router::get('/user/{id}', 'App@user');

Router::group('/error');
Router::get('/{code}','App@error');
Router::endgroup();

Router::dispatch();

//error
if(Router::error()){
    Router::redirect("/error/".Router::getError());
}
可调用
<?php

use BRdev\Router\Router;

require __DIR__."/vendor/autoload.php";
 

Router::get('/', function () {
    echo "Pagina Home";
});

Router::get('/sobre', function () {
    echo "Pagina Sobre";
});

Router::get('/user/{id}', function ($data) {
    echo "User ". $data->id;
});

Router::group('/error');
    Router::get('/{code}',function ($data){
        var_dump($data->code)
    });
Router::endgroup();

Router::dispatch();

//error
if(Router::error()){
    Router::redirect("/error/".Router::getError());
}