駝峰命名
控制器類名的規范是駝峰法(并且首字母大寫),不過URL的訪問地址并非如此,假設定義了一個HelloWorld控制器如下:
~~~
<?php
namespace app\index\controller;
class HelloWorld
{
public function index()
{
return 'hello,world';
}
}
~~~
實際的URL訪問并非是下面的
~~~
http://tp5.com/index/HelloWorld/index
~~~
實際會被系統解析成Helloworld控制器類而不是HelloWorld控制器類(雖然只是大小寫的區別但按照PSR-4自動加載規范無法自動加載,因此會報Helloworld控制器類不存在的錯誤)。
正確的URL訪問應該是
~~~
http://tp5.com/index/hello_world/index
~~~
> 注意:hello_world并不會自動對應hello_world控制器(因為不符合控制器類的命名規范),仍然會自動對應HelloWorld控制器類。原因就是框架的URL自動轉換功能,由于系統的URL自動轉換功能,ThinkPHP5的URL地址默認是不區分大小寫的(也就是說都會強制轉換成小寫)。但事情沒有絕對,我們可以設置關閉URL自動轉換:
~~~
'url_convert' => false,
~~~
一旦關閉url_convert自動轉換,就意味著URL地址中的控制器名不會自動轉換,必須嚴格使用實際的控制器名(區分大小寫)。
這個時候,你就可以通過
~~~
http://tp5.com/index/HelloWorld/index
~~~
正常訪問HelloWorld控制器了^_^