解密ThinkPHP3.1.2版本之模块和操作映射
ThinkPHP  /  管理员 发布于 8年前   191
模板和操作映射功能是ThinkPHP3.1.2版本支持的对模块和操作设置的映射机制,由于可以通过改变配置动态改变(实际真正改变,并非别名)URL访问地址,加强了应用的安全性,而且,映射机制具有URL不区分大小写访问的特性,对于应用的迁移也有很大的帮助。 因为,普通情况下,如果需要更改URL的模块或者操作访问的话,需要改动的文件较多,容易导致关联性出错。尤其是很多应用需要迁移到新版本的时候,由于模型和控制器改动较多,导致URL地址出现大的调整,通过模块和操作映射功能,就可以很轻松的解决此类问题。 1.模块映射 要定义模块映射,我们只需要在配置文件中定义: URL_MODULE_MAP是一个数组,每个数组项表示: 映射名称不区分大小写,所以设置后,URL访问从原来的: 变成了: 并且原来的访问URL是失效的,这也是和定义路由方式改变URL的区别之一。没有定义映射的模块访问不变。 2.操作映射 不仅是模块名称可以映射,操作名称也支持映射,而且是针对模块来设置的,操作映射的定义方式为: URL_ACTION_MAP参数是一个二维数组,每个数组项表示: 操作映射名不区分大小写,如上定义后,URL访问从 变成了(不考虑前面定义的模块映射): 同样,原来的URL地址访问则失效。没有定义映射的操作访问地址不变。 则,原来的注册地址 变成了 可能很多人会担心,在设置了模块和操作映射后,U函数就会出现需要随之改动的情况。其实不需要担心,因为U函数内部已经自动支持了模块和操作映射的情况。 无论如何定义Member模块和add操作的映射,U方法的写法始终保持不变,仍然会正确的指向映射后的URL地址。 总结: 模块和操作映射可以用于如下场合: 需要注意的事项:'URL_MODULE_MAP'=>array( 'user' => 'Member', 'blog' => 'Info', )
'模块映射名'=>'实际模块名'
http://serverName/index.php/Member/indexhttp://serverName/index.php/Info/index
http://serverName/index.php/user/indexhttp://serverName/index.php/blog/index
定义了模块映射后,可以通过MODULE_ALIAS常量读取当前模块的URL名称。'URL_ACTION_MAP'=>array( 'Member' => array( 'register' => 'add', ), 'Info' => array( 'list' => 'index' ), )
'实际模块名'=>array( '操作映射名1'=>'实际操作名1' '操作映射名2'=>'实际操作名2' ...... )
http://serverName/index.php/Member/addhttp://serverName/index.php/Info/index
http://serverName/index.php/Member/registerhttp://serverName/index.php/Info/list
定义了操作映射后,可以通过ACTION_ALIAS常量读取当前操作在URL地址中的操作名。
操作映射和模块映射可以同时定义,没有影响,例如:'URL_MODULE_MAP'=>array( 'user' => 'Member', ), 'URL_ACTION_MAP'=>array( 'Member' => array( 'register888' => 'add', ), )
http://serverName/index.php/Member/add
http://serverName/index.php/user/register888
3.U函数自动支持
例如,原来在模板文件中使用了用户注册
1、有经常变化URL需要的场合
2、对URL安全性较高的场合
3、需要移植的应用不希望改变URL地址的场合
在使用了模块和操作映射后,对相关URL地址的路由定义可能需要调整。您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号