1、如何理解ThinkPHP中的單一入口檔案?
ThinkPHP使用單一入口模式進行項目部署和訪問,使用ThinkPHP框架,無論做什麼項目,都會有一個唯一的入口文件,這個文件就是這個項目的起點,進入項目後,再進行其他操作。
一般的,入口檔案都會包含三部分內容:
必須的:
1.載入框架入口檔案
可選的:
2.定義架構路徑、專案路徑及專案名稱
## 3.定義除錯模式、運作模式的相關常數## 相關專題建議:2020年thinkphp面試題目及答案(大全)2、ThinkPHP中的MVC分層是什麼
MVC設計想法是一種抽象的概念,核心是把應用程式的邏輯層和視圖層分開。
ThinkPHP中用到MVC的大致體現在是:
模型(M):Model資料處理類別;
控制器(C):應用控制器(核心控制器App類別)和Action控制器都承擔了控制器的角色,Action控制器完成業務控制,應用控制器完成調度控制。
視圖(V):由View類別和視圖範本檔案組成。
在ThinkPHP中,做到了不依賴M或V ,也就是說沒有模型或視圖也一樣可以運作。甚至不依賴C,這是因為ThinkPHP在Action之上還有一個總控制器,就是App控制器,負責應用程式的總調度。在沒有C的情況下,必然存在視圖V,否則就不再是完整的應用。
3、如何理解ThinkPHP架構(核心行為驅動(CBD))核心:ThinkPHP的核心程式碼,MVC架構等等;
#行為:ThinkPHP框架自帶的一些方法、預留的一些拓展位置等;
驅動:ThinkPHP已建立好的資料庫驅動、快取驅動、標籤庫驅動、模板引擎驅動等等,以及一些外置拓展;在開發過程中,可以直接使用它的這些驅動,簡單且有效率。
4、ThinkPHP如何防止SQL注入ThinkPHP架構設計的時候,進行了一些防SQL注入的操作。
主要要注意的地方有:
sql運算能用Array運算就用Array
必須用Sql語句進行操作時,對使用者輸入的內容進行預判;例如,數值類型強制轉換、SQL關鍵字檢查、正規表示式匹配等。
5、如何開啟偵錯模式?調試模式有什麼好處?開啟偵錯模式,只需要在入口檔案中,載入框架入口檔案語句之前,增加一行常數定義語句;
define("APP_DEBUG",true);
開啟偵錯模式後,系統會自動開啟以下內容:
操作日誌、SQL日誌等日誌,任何的錯誤都會詳細記錄,以便於調試;
關閉範本文件緩存,模板修改即時生效;
關閉字段緩存,資料庫的字段修改不受緩存影響;
嚴格檢查文件大小寫等等
調試模式是一種在專案上線之前,開發、調試、演示等等場景下的一個便利工具。
6、ThinkPHP中支援哪些組態模式?優先順序是怎樣的?ThinkPHP在專案配置方面創建了自己都有的分層配置模式,優先順序從右到左依序是:
慣例配置->專案配置->調試配置->分組配置->拓展配置->動態配置
#7、ThinkPHP中URL模式支援哪幾種?ThinkPHP支援4中URL模式,透過URL_MODEL參數進行配置修改,預設為PATHINFO模式,配置值0,1,2,3依序為:普通模式、PATHINFO模式、REWRITE模式和相容模式
8、ThinkPHP中的系統變數有哪些?如何取得系統變數?ThinkPHP中常用的系統變數包括:server、session、cookie、get、post、request
系統變數的輸出必須使用$Think.作為前綴,例如:
$Think.server.php_self = $_SESSION['php_self']
#9、ThinkPHP中M方法和D方法的差異(高頻問題)ThinkPHP中常用M和D兩種方法來實例化資料模型類,區別是M方法直接實例化資料模型基類,D方法會檢查一下是否有繼承的模型類,如果沒有的話,則功能和M方法一樣,如果存在繼承類,則實例化繼承類別。
相關學習推薦:
以上是常見ThinkPHP框架面試筆試題及解答的詳細內容。更多資訊請關注PHP中文網其他相關文章!