ThinkPHP5 ---基礎(chǔ)篇(URL和路由)

ThinkPHP5 ---基礎(chǔ)篇(URL和路由)

一、入口文件

i. 單入口文件:應用程序的所有http請求都由某一個文件接受并有這個文件轉(zhuǎn)發(fā)到功能代碼中 【public/index.php 傳入不同的參數(shù)跳轉(zhuǎn)到不同的控制器執(zhí)行不同的方法實現(xiàn)不同的功能】

ii. 優(yōu)勢:

  1. 只需要在入口文件做安全檢測 多入口文件多次檢測

  2. 在入口文件 過濾掉無效請求 多入口文件多次過濾

iii. public/index.php

image.png

iv. 如APP_PATH常量定義文件 thinkphp/base.php

image.png

v. 加載引導文件 thinkphp/start.php (安全檢測 處理無效請求等)

總結(jié):入口文件 可以改變系統(tǒng)默認配置(常量配置) 加載引導文件start.php

二、隱藏入口文件

i. 將項目根目錄設置為public下面 http://localhost訪問的是public/index.php

效果同http://localhost/index.php

ii. 但是訪問其他模塊 需要http://localhost/index.php/admin/... 修改apache配置文件httpd.conf

image.png
  1. 打開擴展 LoadModule rewrite_module modules/mod_rewrite.so

  2. <Directory "${INSTALL_DIR}/www/public"> 下 AllowOverride all

  3. 重啟apache

  4. 訪問其他模塊 就沒問題了 localhost/admin/...

image.png

iii. 此處 默認讀取了 在public/.htaccess 這個文件定義重寫規(guī)則

image.png

iv. 在apache修改上述配置后 讀取此文件

若此文件存在則啟用此規(guī)則 隱藏掉index.php入口文件 http://localhost/admin/index/demo

若此文件不存在 訪問的時候必須加上index.php http://localhost/index.php/admin/index/demo

三、入口文件的綁定

i. 概念:index.php默認訪問的是index模塊下index控制器的index方法

ii. public/index.php


image.png
image.png

iii. 方法一: 修改public/index.php

  1. //入口文件綁定 define('BIND_MODULE','admin') ; 此處綁定的是admin控制器 也可以admin/index 訪問的時候 localhost/index 直接到index控制器下的方法(用于比較簡單 模塊少 頁面少的網(wǎng)站)
image.png
  1. 新建admin模塊Index控制器index方法
image.png
  1. localhost測試
image.png
  1. 上述是綁定到了admin模塊 訪問admin下其他控制器 其他方法

a) index控制器下的demo方法

image.png

b) User控制器下的index方法

image.png

iv. 方法二: 如果當前網(wǎng)站需要給第三方提供數(shù)據(jù) 需要第三方通過接口只能訪問到特定的模塊 所以不希望第三方直接訪問到index.php 而是特定的入口文件 如api.php

  1. 新增public/api.php
image.png
  1. localhost/api.php 訪問 (默認訪問的也是index模塊下index控制器的index方法)
image.png
  1. 只希望通過api.php入口訪問特定的模塊 只能訪問api模塊
image.png
image.png

v. 方法三:自動綁定

  1. thinkphp/convention.php 下 'auto_bind_module' => false,
image.png
  1. 應用配置conf/config.php 開啟入口自動綁定模塊

'auto_bind_module' => true,

image.png
  1. 測試localhost | localhost/api.php | localhost/index/demo
image.png
image.png
image.png
  1. 總結(jié):自動綁定的是和入口文件名相同的模塊 (index.php ->index模塊 api.php->api模塊)

四、路由

i. 簡介:美化URL 簡化用戶的訪問

ii. 正常訪問 localhost/模塊名/控制器名/方法名

  1. admin模塊 User控制器 add方法
image.png
  1. 測試訪問localhost/admin/user/add/name/張三
image.png
  1. 訪問繁瑣 用路由簡化

a) 配置文件(thinkphp/convention.php )中開啟路由

'url_route_on' => true, 'url_route_must' => false,

image.png

b) 應用配置文件conf/config.php 增加配置

'url_route_on' => true ,'url_route_must' => false,

image.png

c) 新建路由文件conf/route.php

image.png

d) 分別測試訪問

localhost/news/張三|localhost/admin/user/add/name/張三


image.png
image.png

e) 修改add方法 url()函數(shù)獲取路徑

image.png
image.png

f) 目前如果訪問其他方法 還是可以訪問的

image.png

g) 讓所有的請求全部強使用路由 conf/config.php

'url_route_must' => true,

image.png

再次訪問http://localhost/admin/user/index 拒絕訪問

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

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,628評論 19 139
  • 實際上,thinkphp5已經(jīng)為我們做好了過濾。。。所有的http請求都會從入口文件進來。而入口文件的配置,或者說...
    FKTX閱讀 1,344評論 0 0
  • 路由作用 1.根據(jù)實現(xiàn)定義的路由規(guī)則,檢驗URL請求,確定執(zhí)行或者拒絕; 2.路由規(guī)則可自定義,隱藏了原URL地址...
    PlusNie閱讀 2,747評論 1 5
  • 理工寢室商店-微信小程序 疑問小結(jié) 當時在XAMMP下mysql目錄下的bin下 php -v 不起作用.到ph...
    這個超人不會飛阿閱讀 1,826評論 1 1
  • 來源:秋葉《如何讀一本書》 我喜歡讀詩,覺得詩要朗讀出來才有味道。讀完后偶爾寫篇好評論,有和作者天涯共此時的感覺,...
    向上是種力閱讀 564評論 0 1

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