3、绑定到类
个人:相比命名空间,这里单从URL来说省略了模块、控制器两层。类似命名空间,单这里针对的这是控制器层,而命名空间针对的是模块层
// 绑定到类 Route::bind('\app\index\controller\Blog','class');
只需
http://serverName/read/id/5
就可以直接访问 \app\index\controller\Blog类的read方法。
注:绑定到命名空间和类之后,不会进行模块的初始化工作。
4、入口文件绑定
个人:如果我们使用入口文件绑定,绑定一个模块,同时取消多模块访问配置↓,也就意味着,就算你在项目里放了再多项目也只会访问一个。想要访问其他模块只需要在入口文件改下名字即可。甚至可以使用一个空模块。将入口文件绑定为空模块将实现项目下线功能。
// 是否支持多模块 'app_multi_module' => true,
只需要入口文件添加BIND_MODULE常量,即可把当前入口文件绑定到指定的模块或者控制器,例如:
如果我们需要给某个入口文件绑定模块,可以使用下面两种方式:
①常量定义
// 定义应用目录 define('APP_PATH', __DIR__ . '/../application/'); // 绑定到index模块 define('BIND_MODULE','index'); // 加载框架引导文件 require __DIR__ . '/../thinkphp/start.php';
②自动入口绑定
个人:顾名思义,和①功能一样,只是这个连绑定都不需要。只需要打开↓配置即可
// 入口自动绑定模块 'auto_bind_module' => false,
四、域名路由
// blog子域名绑定到blog模块 Route::domain('blog','blog'); // blog子域名绑定到blog模块,并添加默认参数 Route::domain('blog','blog?var=thinkphp');
↓
// 原来的URL访问 http://www.thinkphp.cn/blog/article/read/id/5 // 绑定到blog子域名访问 http://blog.thinkphp.cn/article/read/id/5
// blog子域名绑定到index模块的blog控制器 Route::domain('blog','index/blog');
↓
// 原来的URL访问 http://www.thinkphp.cn/index/blog/read/id/5 // 绑定到blog子域名访问 http://blog.thinkphp.cn/read/id/5
// 完整域名绑定到admin模块 Route::domain('admin.thinkphp.cn','admin'); // IP绑定到admin模块 Route::domain('114.23.4.5','admin');
泛域名部署
二级泛域名
// 绑定泛二级域名域名到book模块 Route::domain('*','book?name=*');
内容版权声明:除非注明,否则皆为本站原创文章。