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() {...}
}