lukevear/tbone

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

一个极快的微型 PHP 路由器

安装: 25

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:软件包

2.0.3 2016-01-20 02:53 UTC

This package is not auto-updated.

Last update: 2020-08-16 11:36:36 UTC


README

Latest Stable Version Build Status Coverage Status License

一个非常简单,非常快的 PHP 路由器。

  • 极其容易使用
  • 支持 OPTIONS、HEAD、GET、POST、PUT、PATCH 和 DELETE 请求
  • 简单的错误处理事件系统

注意:TBone 不支持路由参数(例如 /customers/{id})

何时使用 TBone

TBone 旨在用于非常简单、相对静态的 PHP 应用程序,其中您的应用程序逻辑可以位于一组闭包中。如果您尝试将 TBone 用于超出简单站点的任何内容,您可能会遇到麻烦。如果您在寻找更令人印象深刻的东西,我建议使用 nikic/FastRoute

安装

composer require lukevear/tbone

激活路由器

您可以在项目的任何适当位置使用 TBone,但最常用的用法是在文档目录中的 index.php 文件中。如果从 index.php 文件运行,您应该有一个类似于以下内容的 .htaccess 文件。

<IfModule mod_rewrite.c>
    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

基本示例

use TBone\TBone;

$router = new TBone;

// Add a GET route
$router->get('/', function() {
    echo 'Welcome to my homepage';
});

// Add a POST route
$router->post('/contact-us', function() {
    echo 'Thanks for your submission';
});

// Run the router
$router->dispatch();

事件系统

TBone 的事件系统旨在为您提供一种处理路由相关事件的机制。TBone 支持 ROUTE_DISPATCH_REQUESTED(当调用 dispatch() 时触发),ROUTE_NOT_FOUND(当无法匹配路由时触发)和 ROUTE_DISPATCHED(当路由匹配且回调已运行时触发)。

当事件被触发时,指定的回调将被运行。

use TBone\TBone;
use TBone\TBoneEvent;

$router = new TBone;

// Add a GET route
$router->get('/', function() {
    echo 'Welcome to my homepage';
});

// Register our 404 page
$router->addHandler(TBoneEvent::ROUTE_NOT_FOUND, function() {
    http_response_code(404);
    echo 'Sorry, that page doesn\'t exist!';
});

// Run the router
$router->dispatch();