18、TP5的路由初體驗(yàn)

本章我們先體驗(yàn)下什么是路由,以及路由帶來(lái)的好處。

首先,我們先了解一下URL請(qǐng)求的執(zhí)行流程:

請(qǐng)求流程

路由的作用如下:
路由作用

路由規(guī)則應(yīng)該寫在哪里?
書寫路由規(guī)則

那么,問(wèn)題來(lái)了,為什么不能把路由注冊(cè)的語(yǔ)句寫在控制器的方法中呢?


我們通過(guò)實(shí)際案例來(lái)看看原因:
1、首先創(chuàng)建一個(gè)自定義配置文件:/config/config.php,當(dāng)然啦,前提別忘了在入口文件中定義一下自定義配置文件目錄:

define('CONF_PATH', __DIR__ . '/../config/');

要想使用路由,就必須要確保已經(jīng)配置了啟用url路由,所以我們需要在自定義配置文件:/config/config.php中添加啟動(dòng)url路由的配置:

<?php
return [
  // 是否開啟路由
  'url_route_on'           => true,
];
 ?>

2、創(chuàng)建一個(gè)/application/edu/controller/Test.php文件,寫上代碼:

<?php
namespace app\edu\controller;
class Test
{
  public function demo1()
  {
    return 'I am Peter';
  }
}

3、瀏覽器中使用PATH_INFO格式去訪問(wèn):http://tp5.com/edu/test/demo1,成功了。
但是url略長(zhǎng),并且一眼就看出來(lái)哪些是模塊哪些是控制器,從安全性的角度上來(lái)講,是不行的,所以我們要使用路由。

4、在自定義配置文件夾下創(chuàng)建一個(gè)/config/route.php文件,寫入路由規(guī)則:

<?php
think\Route::rule('demo1','edu/test/demo1');
 ?>

再在瀏覽器地址欄中輸入:http://tp5.com/edu/test/demo1,就會(huì)提示

非法請(qǐng)求

這時(shí)候就要使用路由配置后的url:http://tp5.com/demo1才能正常訪問(wèn)。


現(xiàn)在來(lái)回答前面的提問(wèn),為什么不能將路由寫到控制器中:
如果將路由寫到控制器中,那么當(dāng)url請(qǐng)求已經(jīng)執(zhí)行到了控制器的時(shí)候,其實(shí)你真實(shí)的url地址早就暴露了,還要路由規(guī)則干嘛?
路由規(guī)則其實(shí)是在應(yīng)用級(jí)層面上就應(yīng)該要配置的。

如果沒(méi)有自定義配置文件,則一般路由規(guī)則是寫在/application/route.php文件下的,如果自定義了配置文件,就寫在/config/route.php文件里。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,680評(píng)論 19 139
  • 理工寢室商店-微信小程序 疑問(wèn)小結(jié) 當(dāng)時(shí)在XAMMP下mysql目錄下的bin下 php -v 不起作用.到ph...
    這個(gè)超人不會(huì)飛阿閱讀 1,827評(píng)論 1 1
  • 路由作用 1.根據(jù)實(shí)現(xiàn)定義的路由規(guī)則,檢驗(yàn)URL請(qǐng)求,確定執(zhí)行或者拒絕; 2.路由規(guī)則可自定義,隱藏了原URL地址...
    PlusNie閱讀 2,747評(píng)論 1 5
  • 文章分類 后臺(tái)文章分類列表頁(yè)模板導(dǎo)的詳細(xì)步驟建立數(shù)據(jù)表blog_category,并添加相應(yīng)的文章字段使用php ...
    JoyceZhao閱讀 1,870評(píng)論 0 14
  • Laravel 學(xué)習(xí)交流 QQ 群:375462817 本文檔前言Laravel 文檔寫的很好,只是新手看起來(lái)會(huì)有...
    Leonzai閱讀 8,716評(píng)論 2 12

友情鏈接更多精彩內(nèi)容