1、如何理解ThinkPHP中的單一入口文件?
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、東方網(wǎng)站維護(hù)、網(wǎng)站推廣。ThinkPHP使用單一入口模式進(jìn)行項目部署和訪問,使用ThinkPHP框架,無論做什么項目,都會有一個唯一的入口文件,這個文件就是這個項目的起點,進(jìn)入項目后,再進(jìn)行其他操作。
一般的,入口文件都會包含三部分內(nèi)容:
必須的:
1.載入框架入口文件
可選的:
2.定義框架路徑、項目路徑和項目名稱
3.定義調(diào)試模式、運行模式的相關(guān)常量
相關(guān)專題推薦:2020年thinkphp面試題及答案(大全)
2、ThinkPHP中的MVC分層是什么
MVC設(shè)計思想是一種抽象的概念,核心是把應(yīng)用程序的邏輯層和視圖層分開。
ThinkPHP中用到MVC的大致體現(xiàn)在是:
模型(M):Model數(shù)據(jù)處理類;
控制器(C):應(yīng)用控制器(核心控制器App類)和Action控制器都承擔(dān)了控制器的角色,Action控制器完成業(yè)務(wù)控制,應(yīng)用控制器完成調(diào)度控制。
視圖(V):由View類和視圖模板文件組成。
在ThinkPHP中,做到了不依賴M或者V ,也就是說沒有模型或者視圖也一樣可以工作。甚至也不依賴C,這是因為ThinkPHP在Action之上還有一個總控制器,即App控制器,負(fù)責(zé)應(yīng)用的總調(diào)度。在沒有C的情況下,必然存在視圖V,否則就不再是一個完整的應(yīng)用。
3、如何理解ThinkPHP架構(gòu)(核心+行為+驅(qū)動(CBD))
核心:ThinkPHP的核心代碼,MVC構(gòu)架等等;
行為:ThinkPHP框架自帶的一些方法、預(yù)留的一些拓展位置等;
驅(qū)動:ThinkPHP已構(gòu)建好的數(shù)據(jù)庫驅(qū)動、緩存驅(qū)動、標(biāo)簽庫驅(qū)動、模板引擎驅(qū)動等等,以及一些外置拓展;在開發(fā)過程中,可以直接使用它的這些驅(qū)動,簡單高效。
4、ThinkPHP如何防止SQL注入
ThinkPHP架構(gòu)設(shè)計的時候,進(jìn)行了一些防SQL注入的操作。
主要需要注意的地方有:
sql操作能用Array操作就用Array
必須用Sql語句進(jìn)行操作時,對用戶輸入的內(nèi)容進(jìn)行預(yù)判;例如,數(shù)值類型強(qiáng)制轉(zhuǎn)換、SQL關(guān)鍵字檢查、正則表達(dá)式匹配等。
5、如何開啟調(diào)試模式?調(diào)試模式有什么好處?
開啟調(diào)試模式,只需要在入口文件中,載入框架入口文件語句之前,增加一行常量定義語句;
define("APP_DEBUG",true);
開啟調(diào)試模式后,系統(tǒng)會自動開啟以下內(nèi)容:
操作日志、SQL日志等日志,任何的錯誤都會詳細(xì)記錄,便于調(diào)試;
關(guān)閉模板文件緩存,模板修改即時生效;
關(guān)閉字段緩存,數(shù)據(jù)庫的字段修改不受緩存影響;
嚴(yán)格檢查文件大小寫等等
調(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ù)進(jìn)行配置修改,默認(rèn)為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方法一樣,如果存在繼承類,則實例化繼承類。
相關(guān)學(xué)習(xí)推薦:thinkphp