Thinkphp5.0 駝峯命名測試與總結

本文轉載文章,原文鏈接爲https://www.cnblogs.com/fangziffff123/p/7745409.html。

Thinkphp5.0 駝峯命名測試與總結

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

一 Thinkphp5.0,在url部分對駝峯命名,有如下介紹

    

   從以上文檔得到如下信息:

    1 默認情況下,url不區分大小寫。也就是說,url中的所有大寫會全部轉換,去自動完成控制器與操作名的匹配。

    2 默認情況由應用的配置文件    'url_convert'  => true進行設置。

      

  那麼帶來新的疑問:

  1  駝峯命名是否只針對控制器有效??還是針對控制器和操作名均有效?

  2  文檔如下提示,操作名不受url自動轉換影響,具體如何影響的?

  

  3  瀏覽器的url與ajax提效的url是否會url自動轉換失效? 

  以上三個疑問,直接影響框架api編寫規範,下面以實際項目來測試

二 問題測試與解決

     測試項目如下,爲新增一條數據,返回新增行的id.

     

 

    測試  1   正常訪問

    瀏覽器訪問url:

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

    結果如下

    

    測試 2   url大小寫混亂拼寫訪問

    

  

   

   從上幾種URL的大寫得如,無論是模塊名,控制器名,還是操作名,都進行了url自動轉換,自動適配,不存在大小寫問題。

    

  測試3  如果是ajax提交,跟瀏覽器url自動轉換有區別嗎?

  我用layui的表單提效測試一下,action='http://tp5.com/index/index2/USERNEW':

  

  頁面如下提交:

 

提交後結果如下:

 

 

   由此可見,ajax提交,跟瀏覽器url自動轉換無區別

  測試4   操作名大寫

   

  

   對比測試可見,對於操作名來說,無所謂大小寫,無論是url,還是操作名,都會當作全小寫對待。 

 測試5  控制器大小寫

   通過操作名不分大小寫推測,控制器也應不分大小寫。測試如下:

  

 

   

  結果報錯,說明,控制器不能像操作名一樣大小寫隨便寫,必須如文檔規範來寫。

  測試6  控制器駝峯命名

   駝峯命名規範有兩層含義:1 首字母大寫  2 第二個大寫字母在url中要以下劃線標識 

  

  首字母大寫,原因在於,控制器是一個類,類名以大寫字母開頭。

 

 當駝峯命名的控制器出現後,url中的寫法以下劃線標識,在url自動轉換時,下劃線後的字母會轉成大寫,與控制器中的第二個大字字母相對應 。

否則url轉換後全爲小寫,會找到在對應控制器名,報錯。

 

 依次類推,駝峯命名可以多個大字累加嗎?如下:

 

  對比可見,駝峯命名的關鍵是url的下劃線,至於url大小寫無所謂。

 測試7 控制器大小寫對視圖模板的影響

     

   開發框架中的所有模板控制器文件夾均爲小寫,用大寫表示重複。顯然通通用小寫即可。

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

   可見,視圖模板對應的是操作名,父文件夾對應的是控制器名,父文件夾無所謂大小寫。

   測試8 操作名大小寫對視圖模板的影響

   由於操作名無論大小寫,都會當成小寫對待,那操作名大小寫,會不會必須和視圖模板名一致呢??

   

  

  新增id顯示成功,說明視圖模板渲染不受文件名大小寫影響,也會通通當作小寫處理,與操作名自動匹配。

 

三  總結:

     1 在url自動轉換模式下,url與大小寫無關,全部會以小寫對待。

     2 操作名與大小寫無關,全部會以小寫對待。

     3 駝峯命名只針對控制器,控制器的第二個大寫字母,在url中以_下劃線標識。

     4 對控制器和操作名對應的視圖模板文件夾與文件無所謂大小寫,系統會自動匹配。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章