日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

ThinkPHP控制器

發布時間:2025/5/22 php 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ThinkPHP控制器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ThinkPHP控制器Controller

1、什么是控制器

在MVC框架中,其核心就是C(Controller)控制器。主要用于接收用戶請求,處理業務邏輯。

2、控制器的定義

在一個ThinkPHP系統中,其可以分為多個模塊(如Home前臺模塊,Admin后臺模塊等),我們在定義控制器時都需要定義在相應的模塊內。定義規范如下:

控制器名稱(首字母大寫)+Controller(關鍵詞)+.class.php(類文件后綴)

如:IndexController.class.php

????NewsController.class.php

3、編寫控制器代碼

① 定義命名空間

命名空間就是為了解決php中類、函數以及常量重名問題。

namespace 空間名稱

特別說明:命名空間的空間名稱與路徑是沒有任何關系的,但是在ThinkPHP框架中其與ThinkPHP框架的路徑是想對應的,謹記!!!

② 引入核心控制器

use 命名空間

use Think\Controller;

③ 定義自定義控制器,如下圖所示:

4、控制器的訪問規則(URL調度模式)

在ThinkPHP框架中,一共有4中URL調度模式,默認使用的是第2中,PATHINFO調度模式:

http://自定義域名/index.php(入口文件)/Home(模塊名稱)/News(控制器名稱)/index(操作方法)

① 普通調度模式

參數說明:

基本語法:

http://自定義域名/index.php(入口文件)?m=Home(模塊)&c=News(控制器名稱)&a=index(操作方法)

如果想在ThinkPHP中使用普通調度模式,需要在自定義配置文件中設置URL_MODEL參數如下:

運行結果:

② PATHINFO調度模式

PATHINFO調度模式是ThinkPHP中默認的URL調度模式,其號稱是最友好的鏈接形式,有利于SEO優化,基本語法:

http://自定義域名/index.php(入口文件)/Home(模塊名稱)/News(控制器名稱)/index(操作方法)

③ REWRITE重寫模式(防盜鏈)

基本語法:

http://自定義域名/Home(前臺模塊)/News(控制器名稱)/index(操作方法)

Rewrite重寫模式詳細設置步驟:

1)httpd.conf配置文件中加載了mod_rewrite.so模塊

2)AllowOverride None 將None改為 All

記住:設置完成后要重啟Apache服務器!

3)確保URL_MODEL設置為2

4)把下面的內容保存為.htaccess文件放到入口文件的同級目錄下

<IfModule mod_rewrite.c>

Options +FollowSymlinks

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

</IfModule>

設置成功后,訪問效果如下圖所示:

④ 兼容模式

基本語法:

http://自定義域名/index.php(入口文件)?s=Home(前臺模塊)/News(控制器)/index(操作方法)

設置URL_MODEL為3即可,如下圖所示:

運行結果:

5、開啟ThinkPHP代碼調試

在實際項目開發中,肯定會遇到相關錯誤信息,但是默認ThinkPHP框架顯示的是友好錯誤,如下圖所示:

為了能實現更好的代碼調試效果,可以在項目的入口文件中定義以下參數:

記住:項目上線后,這行代碼要注釋掉!

6、空操作

1)定制錯誤頁面

2)優化url鏈接

7、空控制器

1)定制錯誤頁面

2)優化url鏈接

8、劃分項目前后臺模塊(Home、Admin)

ThinkPHP3.2.3模塊結構劃分:

Home模塊名稱

Controller控制器

Model模型

View視圖

Admin模塊名稱

Controller控制器

Model模型

View視圖

?

① 在Application文件夾下創建Admin文件夾作為后臺模塊

② 在Admin文件夾下創建Controller/Model/View三個文件夾

③ 配置文件共享問題

在Application項目目錄中,一共有兩個模塊(Home、Admin),那這個配置文件應該怎么設置呢?

1)每個模塊下單獨使用一個配置文件config.php(當前配置文件只對當前模塊有用)

2)兩個模塊公用一個配置文件,直接寫在Application/Common/Conf/config.php文件中

?

④ 設置配置文件

案例:在后臺定義登陸模塊

① 在Application/Admin/Controller文件夾中創建一個Public控制器

② 編寫代碼如下圖所示:

③ 通過URL調度模式2訪問后臺登陸模塊

9、URL大小寫

在Window操作系統中,其對URL大小寫并不敏感(不區分大小寫)。但是其在Linux操作系統中又是嚴格區別大小寫的,所以我們可以通過設置以下參數讓ThinkPHP不區分大小寫。

10、頁面跳轉(帶可視化模板)

$this->success(msg,url,time) :成功跳轉

$this->error(msg,url,time) :失敗跳轉

示例代碼:

如果在實際項目開發中,需要更改success與error的模板,可以通過以下參數獲取模板信息:

11、頁面重定向

$this->redirect(url,array('id'=>1),5,"頁面跳轉中");

參數說明:

url:跳轉鏈接

array('id'=>1) :傳遞參數id為1

5:等待時間

"頁面跳轉中" :提示信息…

轉載于:https://www.cnblogs.com/nyxd/p/5366061.html

總結

以上是生活随笔為你收集整理的ThinkPHP控制器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。