常見ThinkPHP框架面試筆試問題及解答

常見ThinkPHP框架面試筆試問題及解答

1、如何理解ThinkPHP中的單一入口文件?

ThinkPHP使用單一入口模式進行項目部署和訪問,使用ThinkPHP框架,無論做什么項目,都會有一個唯一的入口文件,這個文件就是這個項目的起點,進入項目后,再進行其他操作。

一般的,入口文件都會包含三部分內(nèi)容:

必須的:

立即學習PHP免費學習筆記(深入)”;

? ? 1.載入框架入口文件

可選的:

? ? 2.定義框架路徑、項目路徑和項目名稱

? ? 3.定義調(diào)試模式、運行模式的相關常量

?相關專題推薦:2020年thinkphp面試題及答案(大全)

2、ThinkPHP中的MVC分層是什么

MVC設計思想是一種抽象的概念,核心是把應用程序的邏輯層和視圖層分開。

ThinkPHP中用到MVC的大致體現(xiàn)在是:

模型(M):Model數(shù)據(jù)處理類;

控制器(C):應用控制器(核心控制器App類)和Action控制器都承擔了控制器的角色,Action控制器完成業(yè)務控制,應用控制器完成調(diào)度控制。

視圖(V):由View類和視圖模板文件組成。

在ThinkPHP中,做到了不依賴M或者V ,也就是說沒有模型或者視圖也一樣可以工作。甚至也不依賴C,這是因為ThinkPHP在Action之上還有一個總控制器,即App控制器,負責應用的總調(diào)度。在沒有C的情況下,必然存在視圖V,否則就不再是一個完整的應用。

3、如何理解ThinkPHP架構(核心+行為+驅(qū)動(CBD))

核心:ThinkPHP的核心代碼,MVC構架等等;

行為:ThinkPHP框架自帶的一些方法、預留的一些拓展位置等;

驅(qū)動:ThinkPHP已構建好的數(shù)據(jù)庫驅(qū)動、緩存驅(qū)動、標簽庫驅(qū)動、模板引擎驅(qū)動等等,以及一些外置拓展;在開發(fā)過程中,可以直接使用它的這些驅(qū)動,簡單高效。

4、ThinkPHP如何防止SQL注入

ThinkPHP架構設計的時候,進行了一些防SQL注入的操作。

主要需要注意的地方有:

sql操作能用Array操作就用Array

必須用Sql語句進行操作時,對用戶輸入的內(nèi)容進行預判;例如,數(shù)值類型強制轉(zhuǎn)換、SQL關鍵字檢查、正則表達式匹配等。

5、如何開啟調(diào)試模式?調(diào)試模式有什么好處?

開啟調(diào)試模式,只需要在入口文件中,載入框架入口文件語句之前,增加一行常量定義語句;

define(“APP_DEBUG”,true);

開啟調(diào)試模式后,系統(tǒng)會自動開啟以下內(nèi)容:

操作日志、SQL日志等日志,任何的錯誤都會詳細記錄,便于調(diào)試;

關閉模板文件緩存,模板修改即時生效;

關閉字段緩存,數(shù)據(jù)庫的字段修改不受緩存影響;

嚴格檢查文件大小寫等等

調(diào)試模式是一種在項目上線之前,開發(fā)、調(diào)試、演示等等場景下的一個便捷工具。

6、ThinkPHP中支持哪些配置模式?優(yōu)先級是怎樣的?

ThinkPHP在項目配置方面創(chuàng)建了自己都有的分層配置模式,優(yōu)先順序從右到左依次是:

? ? 慣例配置->項目配置->調(diào)試配置->分組配置->拓展配置->動態(tài)配置

7、ThinkPHP中URL模式支持哪幾種?

ThinkPHP支持4中URL模式,通過URL_MODEL參數(shù)進行配置修改,默認為PATHINFO模式,配置值0,1,2,3依次是:普通模式、PATHINFO模式、REWRITE模式和兼容模式

8、ThinkPHP中的系統(tǒng)變量有哪些?如何獲取系統(tǒng)變量?

ThinkPHP中常用的系統(tǒng)變量包括:server、session、cookie、get、post、request

系統(tǒng)變量的輸出必須使用$Think.作為前綴,比如:

$Think.server.php_self = $_SESSION[‘php_self’]

9、ThinkPHP中M方法和D方法的區(qū)別(高頻問題)

ThinkPHP中常用M和D兩種方法來實例化數(shù)據(jù)模型類,區(qū)別是M方法直接實例化數(shù)據(jù)模型基類,D方法會檢查一下是否有繼承的模型類,如果沒有的話,則功能和M方法一樣,如果存在繼承類,則實例化繼承類。

相關學習推薦:thinkphp

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享