欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Thinkphp5.0 驼峰命名测试与总结

程序员文章站 2022-05-31 22:58:34
...

本文转载文章,原文链接为https://www.cnblogs.com/fangziffff123/p/7745409.html。

Thinkphp5.0 驼峰命名测试与总结

	</h1>
	<div class="clear"></div>
	<div class="postBody">

一 Thinkphp5.0,在url部分对驼峰命名,有如下介绍

    Thinkphp5.0 驼峰命名测试与总结

   从以上文档得到如下信息:

    1 默认情况下,url不区分大小写。也就是说,url中的所有大写会全部转换,去自动完成控制器与操作名的匹配。

    2 默认情况由应用的配置文件    'url_convert'  => true进行设置。

      Thinkphp5.0 驼峰命名测试与总结

  那么带来新的疑问:

  1  驼峰命名是否只针对控制器有效??还是针对控制器和操作名均有效?

  2  文档如下提示,操作名不受url自动转换影响,具体如何影响的?

  Thinkphp5.0 驼峰命名测试与总结

  3  浏览器的url与ajax提效的url是否会url自动转换失效? 

  以上三个疑问,直接影响框架api编写规范,下面以实际项目来测试

二 问题测试与解决

     测试项目如下,为新增一条数据,返回新增行的id.

     Thinkphp5.0 驼峰命名测试与总结

 

    测试  1   正常访问

    浏览器访问url:

      http://tp5.com/index/index2/usernew

    结果如下

    Thinkphp5.0 驼峰命名测试与总结

    测试 2   url大小写混乱拼写访问

    Thinkphp5.0 驼峰命名测试与总结

  Thinkphp5.0 驼峰命名测试与总结

   Thinkphp5.0 驼峰命名测试与总结

   从上几种URL的大写得如,无论是模块名,控制器名,还是操作名,都进行了url自动转换,自动适配,不存在大小写问题。

    

  测试3  如果是ajax提交,跟浏览器url自动转换有区别吗?

  我用layui的表单提效测试一下,action='http://tp5.com/index/index2/USERNEW':

  Thinkphp5.0 驼峰命名测试与总结

  页面如下提交:

 Thinkphp5.0 驼峰命名测试与总结

提交后结果如下:

 Thinkphp5.0 驼峰命名测试与总结

 

   由此可见,ajax提交,跟浏览器url自动转换无区别

  测试4   操作名大写

    Thinkphp5.0 驼峰命名测试与总结

  

Thinkphp5.0 驼峰命名测试与总结

   对比测试可见,对于操作名来说,无所谓大小写,无论是url,还是操作名,都会当作全小写对待。 

 测试5  控制器大小写

   通过操作名不分大小写推测,控制器也应不分大小写。测试如下:

  Thinkphp5.0 驼峰命名测试与总结

 

   Thinkphp5.0 驼峰命名测试与总结

  结果报错,说明,控制器不能像操作名一样大小写随便写,必须如文档规范来写。

  测试6  控制器驼峰命名

   驼峰命名规范有两层含义:1 首字母大写  2 第二个大写字母在url中要以下划线标识 

  Thinkphp5.0 驼峰命名测试与总结

  首字母大写,原因在于,控制器是一个类,类名以大写字母开头。

 Thinkphp5.0 驼峰命名测试与总结

 当驼峰命名的控制器出现后,url中的写法以下划线标识,在url自动转换时,下划线后的字母会转成大写,与控制器中的第二个大字字母相对应 。

否则url转换后全为小写,会找到在对应控制器名,报错。

 Thinkphp5.0 驼峰命名测试与总结

 依次类推,驼峰命名可以多个大字累加吗?如下:

 Thinkphp5.0 驼峰命名测试与总结

Thinkphp5.0 驼峰命名测试与总结

  对比可见,驼峰命名的关键是url的下划线,至于url大小写无所谓。

 测试7 控制器大小写对视图模板的影响

     Thinkphp5.0 驼峰命名测试与总结

   开发框架中的所有模板控制器文件夹均为小写,用大写表示重复。显然通通用小写即可。

   而控制器如框架要求,必须是首字母大写。

   可见,视图模板对应的是操作名,父文件夹对应的是控制器名,父文件夹无所谓大小写。

   测试8 操作名大小写对视图模板的影响

   由于操作名无论大小写,都会当成小写对待,那操作名大小写,会不会必须和视图模板名一致呢??

   Thinkphp5.0 驼峰命名测试与总结

  Thinkphp5.0 驼峰命名测试与总结

  新增id显示成功,说明视图模板渲染不受文件名大小写影响,也会通通当作小写处理,与操作名自动匹配。

 

三  总结:

     1 在url自动转换模式下,url与大小写无关,全部会以小写对待。

     2 操作名与大小写无关,全部会以小写对待。

     3 驼峰命名只针对控制器,控制器的第二个大写字母,在url中以_下划线标识。

     4 对控制器和操作名对应的视图模板文件夹与文件无所谓大小写,系统会自动匹配。