首頁 > php框架 > ThinkPHP > 主體

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

coldplay.xixi
發布: 2020-08-10 17:09:33
轉載
5311 人瀏覽過

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

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#

以上是常見ThinkPHP框架面試筆試題及解答的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:chinacion
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板