josantonius/router

此包已被废弃,不再维护。未建议替代包。

处理路由的库。

1.1.2 2022-08-18 21:06 UTC

This package is auto-updated.

Last update: 2022-08-18 21:07:33 UTC


README

Latest Stable Version License

西班牙语版本

处理路由的库。

本文档参考版本 1.1.1。版本 1.1.2(已存档存储库)中的更改未记录或测试。

要求

此库支持 PHP 版本 5.6 或更高版本,并与 HHVM 版本 3.0 或更高版本兼容。

安装

安装此扩展的首选方式是通过 Composer

要安装 PHP 路由库,请执行以下命令:

composer require Josantonius/Router

前面的命令将只安装必要的文件,如果您想 下载整个源代码,可以使用以下命令:

composer require Josantonius/Router --prefer-source

您也可以使用 Git 克隆完整的存储库

$ git clone https://github.com/Josantonius/PHP-Router.git

或者 手动安装

下载 Router.phpUrl.php

wget https://raw.githubusercontent.com/Josantonius/PHP-Router/master/src/Router.php

wget https://raw.githubusercontent.com/Josantonius/PHP-Url/master/src/Url.php

可用方法

此库中的可用方法

- 设置方法名称以使用单例模式

Router::setSingletonName($method);
属性 描述 类型 必需 默认
$method 单例方法名称。 字符串

返回值(布尔值)

- 添加路由

Router::add($routes);
属性 描述 类型 必需 默认
$routes 要添加的路由。 数组
0 路由。 字符串
1 方法 'class@method'。 字符串

返回值(布尔值)

- 从 URI 获取要调用的方法

Router::getMethod($route);
属性 描述 类型 必需 默认
$route 路由。 字符串

返回值(字符串| null)→ 路由或 null

- 如果路由未找到,定义回调

Router::error($callback);
属性 描述 类型 必需 默认
$callback 回调。 可调用

返回值(布尔值 true)

- 匹配后继续处理或停止

也可以指定要处理的完整路由数。

Router::keepLooking($value);
属性 描述 类型 必需 默认
$value 值。 布尔值 整数

返回值(布尔值 true)

- 执行给定请求的回调

Router::dispatch();

返回 (调用响应|false)

快速入门

使用 Composer 来使用此库

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

use Josantonius\Router\Router;

或者如果您已手动安装,请使用它

require_once __DIR__ . '/Router.php';
require_once __DIR__ . '/Url.php';

use Josantonius\Router\Router;

用法

此库使用示例

- 添加路由

Router::add([
    'services' => 'Josantonius\Router\Example@services'
]);

- 添加路由

$routes = [
    'services' => 'Josantonius\Router\Example@services',
    'home'     => 'Josantonius\Router\Example@home',
];

Router::add($routes);

- 执行路由模拟 '服务'

Router::dispatch(); // Response from services method

- 使用正则表达式 (:all) 添加路由

Router::add([
    'blog/:all' => 'Josantonius\Router\Example@blog'
]);

- 执行路由模拟 'language/PHP/'

Router::dispatch(); // Response from services method

- 使用正则表达式 (:any) 和参数添加路由

Router::add([
    'blog/:any/:any/' => 'Josantonius\Router\Example@blog',
]);

- 执行路由模拟 'blog/games/Minecraft/'

Router::dispatch(); // Response from blog method: games | Minecraft

- 使用正则表达式 (:num) 和参数添加路由

Router::add([
    blog/:any/:num/' => 'Josantonius\Router\Example@blog',
]);

- 执行路由模拟 'blog/development/1/'

Router::dispatch(); // Response from blog method: development | 1

- 使用正则表达式 (:hex) 和参数添加路由

Router::add([
    'blog/:any/:hex/' => 'Josantonius\Router\Example@blog',
]);

- 执行路由模拟 'blog/color/e0a060/'

Router::dispatch(); // Response from blog method: color | e0a060

- 使用正则表达式 (:uuidV4) 和参数添加路由

Router::add([
    'blog/:any/:uuidV4/' => 'Josantonius\Router\Example@blog',
]);

- 执行路由模拟 'blog/uuid/11bf5b37-e0b8-42e0-8dcf-dc8c4aefc000/'

Router::dispatch(); // Response from blog method: uuid | 11bf5b37-e0b8-42e0-8dcf-dc8c4aefc000

- 设置方法名称以使用单例模式

Router::setSingletonName('newSingleton');

- 获取方法

Router::getMethod('services'); // Josantonius\Router\Example@services

- 如果路由未找到定义回调

Router::error('Josantonius\Router\Example@error');

- 使用自定义错误回调执行错误的路由

Router::dispatch('unknown'); // Response from error method

- 匹配后继续处理

Router::keepLooking();

- 匹配后继续查找至三个匹配项

Router::keepLooking(3);

- 匹配后停止处理

Router::keepLooking(false);

测试

要运行 测试,您只需要 Composer 并执行以下操作:

git clone https://github.com/Josantonius/PHP-Router.git

cd PHP-Router

composer install

使用 PHPUnit 运行单元测试

composer phpunit

使用 PSR2 代码标准测试,通过 PHPCS

composer phpcs

运行 PHP Mess Detector 测试以检测代码风格的不一致性

composer phpmd

运行所有之前的测试

composer tests

赞助

如果这个项目帮助您减少了开发时间,您可以 赞助我 以支持我的开源工作 😊

许可证

此存储库受 MIT 许可证 许可。

版权所有 © 2016-2022,Josantonius