路由访问时自动生成
//路由访问时自动生成
if (php_sapi_name() != 'cli') {
$middleware_default='checkLogin';//默认中间件
$middleware_other=['api'=>'checkApi'];//其它中间件
\App\Library\Common::createRoute($_SERVER['REQUEST_METHOD'],$_SERVER['REQUEST_URI'],$middleware_default,$middleware_other);
}
//=================== 定制路由规则,覆盖上面规则 ============================//
// 首页
Route::group([
'middleware' => 'checkLogin'
], function () {
Route::get('/', "Home\IndexController@index");
});
/**
* 创建路由规则
* @param string $method 请求方法
* @param string $path 请求地址
* @param string $middleware_default 默认中间件
* @param array $middleware_other 其它中间件
*/
public static function createRoute($method,$path,$middleware_default='',array $middleware_other=[])
{
$method = strtolower($method);//请求方法
$path = explode('?', $path)[0];//请求地址
if (!in_array($method, ['get', 'post', 'GET', 'POST'])) {
$method = 'get';
}
$uris = explode('/', trim($path, '/'));
if (is_array($uris) && count($uris) == 3) {
$uris[0] = ucfirst($uris[0]);
$uris[1] = ucfirst($uris[1]);
$attributes = [];
if (!empty($middleware_other[lcfirst($uris[0])])) {
$attributes['middleware'] = $middleware_other[lcfirst($uris[0])];
} else {
//默认使用的中间件
if(!empty($middleware_default)){
$attributes['middleware'] = $middleware_default;
}
}
\Route::group($attributes, function () use ($method, $path, $uris) {
//生成对应地址 Route::get('/ucl/notices/index','Ucl\NoticesController@index')
\Route::$method($path, $uris[0] . '\\' . $uris[1] . 'Controller@' . $uris[2])->name($uris[1] . '.' . $uris[2]);
});
}
}