ThinkPHP5.0学习-别名路由和路由绑定

别名路由

一、快速注册同一控制器下所有操作方法(不支持变量规则)

1.动态方法:Route::alias('规则名称','模块/控制器',[路由参数]);

2.动态数组:return[

      '__alias__'=>['规则名称','模块/控制器',[路由参数]]

];

//think\Route::get('add/:n/:m','index/demo/add');
//think\Route::get('sub/:n/:m','index/demo/sub');
//think\Route::get('mult/:n/:m','index/demo/mult');
//think\Route::get('div/:n/:m','index/demo/div');

//think\Route::alias('math','index/Demo',[
//    'ext'=>'html',
//    'allow'=>'add,sub',//白名单
//    'except'=>'add,sub',//黑名单
//    ]);
//think\Route::alias('hello','\app\index\controller\Test');
return [
    '__alias__'=>[
        'math'=>['index/demo',['ext'=>'html','except'=>'add,sub',]],
    ],
];

路由绑定

一、入口文件的绑定

说明:在入口文件中添加:BIND_MODULE系统常量

//绑定到指定模块
define('BIND_MODULE','index');
//绑定到指定模块下面的控制器
define('BIND_MODULE','index/Demo');

二、入口的自动绑定

说明:入口文件名与应用中的模块自动绑定

1.入口文件自动绑定模块设置:'auto_bind_module'=>true,

2.创建要需要绑定的入口文件,例如:admin.php

3.创建与入口文件对应的模块与控制器:application/admin/controller/index.php,并创建默认index()方法

4.直接访问:域名/admin.php,就会自动执行admin模块中默认控制器中的默认方法

在config.php中开启入口绑定

    // 入口自动绑定模块
    'auto_bind_module'       => true,

在public文件夹下新建admin.php文件,在application文件夹下新建admin文件夹,新建controller文件夹,新建admin.php

三、动态绑定

语法:Route::bind('模块[/控制器][/操作]')

1.绑定当前的URL到模块

Roule::bind('模块');

2.绑定当前的URL到模块下面的控制器

Route::bind('模块/控制器');

3.绑定当前的URL到模块下面的控制器中的指定操作

Route::bind('模块/控制器/操作');

think\Route::bind('index');//绑定到模块
think\Route::bind('index/Demo');//绑定到控制器
think\Route::bind('index/Demo/add');//绑定到操作

四、绑定到命名空间或者类

1.绑定当前的URL到指定命名空间

Route::bind('app\index\controller','namespace')

此前,所有采用该命名空间的类,都可以直接访问

2.绑定当前的URL到类

Route::bind('app\index\controller\Demo','class')

此前,所有Demo类中的方法,可以直接访问

特别注意:这种绑定形式会直接跳过模块配置文件和公共文件

绑定命名空间
//think\Route::bind('app\index\controller','namespace');
//绑定到类
think\Route::bind('app\index\controller\Demo','class');

 

你可能感兴趣的:(PHP)