本章我們先體驗下什么是路由,以及路由帶來的好處帚豪。
首先碳竟,我們先了解一下URL
請求的執(zhí)行流程:
那么狸臣,問題來了莹桅,為什么不能把路由注冊的語句寫在控制器的方法中呢?
我們通過實際案例來看看原因:
1烛亦、首先創(chuàng)建一個自定義配置文件:/config/config.php
诈泼,當(dāng)然啦,前提別忘了在入口文件中定義一下自定義配置文件目錄:
define('CONF_PATH', __DIR__ . '/../config/');
要想使用路由此洲,就必須要確保已經(jīng)配置了啟用url路由
厂汗,所以我們需要在自定義配置文件:/config/config.php
中添加啟動url路由
的配置:
<?php
return [
// 是否開啟路由
'url_route_on' => true,
];
?>
2、創(chuàng)建一個/application/edu/controller/Test.php
文件呜师,寫上代碼:
<?php
namespace app\edu\controller;
class Test
{
public function demo1()
{
return 'I am Peter';
}
}
3娶桦、瀏覽器中使用PATH_INFO
格式去訪問:http://tp5.com/edu/test/demo1
,成功了汁汗。
但是url
略長衷畦,并且一眼就看出來哪些是模塊哪些是控制器,從安全性的角度上來講知牌,是不行的祈争,所以我們要使用路由。
4角寸、在自定義配置文件夾下創(chuàng)建一個/config/route.php
文件菩混,寫入路由規(guī)則:
<?php
think\Route::rule('demo1','edu/test/demo1');
?>
再在瀏覽器地址欄中輸入:http://tp5.com/edu/test/demo1
忿墅,就會提示
這時候就要使用路由配置后的
url
:http://tp5.com/demo1
才能正常訪問。
現(xiàn)在來回答前面的提問沮峡,為什么不能將路由寫到控制器中:
如果將路由寫到控制器中疚脐,那么當(dāng)url
請求已經(jīng)執(zhí)行到了控制器的時候,其實你真實的url
地址早就暴露了邢疙,還要路由規(guī)則干嘛棍弄?
路由規(guī)則其實是在應(yīng)用級層面上就應(yīng)該要配置的。
如果沒有自定義配置文件疟游,則一般路由規(guī)則是寫在/application/route.php
文件下的呼畸,如果自定義了配置文件,就寫在/config/route.php
文件里颁虐。