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


一 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 對控制器和操作名對應的視圖模板文件夾與文件無所謂大小寫,系統會自動匹配。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM