tamce / router
一个简单的路由器可以帮助你更快地开发。
v1.0.1
2017-08-05 08:53 UTC
This package is auto-updated.
Last update: 2024-09-17 11:07:06 UTC
README
摘要
这是一个简单的路由器,一些功能类似于Laravel,但它更容易使用。
希望这个非常简单的工具能帮到你一点,很高兴能得到你的建议 :)
用法
composer require tamce/router
你可以在你的项目中使用它!
如何创建路由
你可以使用简单的 route
方法创建路由,或者使用 {http_verb}
方法为特定的HTTP请求创建路由。每个创建路由的方法都接收两个参数
uri,路由
uri
是一个与uri匹配的字符串,你可以在该字符串中使用正则表达式,任何与正则表达式匹配的内容都将传递到你提供的函数中。
此外,你还可以使用 {anything_you_want_here}
就像使用 (^[/]+)
一样,因为我们替换了 ({[\w ]+})
这个表达式。我们还替换了 *
为 .*
,所以你可以简单地使用 *
来匹配所有uri。
route
可以是一个字符串、一个数组或一个可调用的数组/闭包函数。
可调用:我们只需使用 call_user_func_array
来调用它。
字符串:字符串将被解析为:((file#)(namespace\)class@)method
数组:就像字符串一样,你可以给我们一个看起来像这样的数组
[
'file' => 'foo.php', // could be ignored
'class' => 'Namespace\ClassName', // could be ignored
'method' => 'methodName'
]
是否使用HTTP动词
你可以通过使用 route
方法创建一个简单路由,或者使用 {verb}
方法匹配特定的HTTP动词。
路由分组
你可以使用 group
函数创建路由分组,并在函数中为每个路由指定一个命名空间,这样路由器就可以自动查找你提供的该命名空间中的类。
示例
index.php
<?php
require 'vendor/autoload.php';
use Tamce\Router;
Router::route('/', function () {
echo 'Hello World!';
});
Router::group(['namespace' => 'Controllers'], function () {
Router::get('/register', 'User@register');
Router::get('/user/{username}', 'User@profile');
});
Router::post('/login', 'Controllers\User@login');
// You can also specific a file to load
Router::get('/about', __DIR__ . '/about.php@foo');
Router::route('*', function () {
header('HTTP/1.1 404 Not Found');
echo 'Sorry, the page could not be found!');
});
Controllers\User.php
<?php
namespace Controllers;
class User
{
public function register() {...}
public function profile($username) {...}
public function login() {...}
}