搜尋
首頁php框架ThinkPHPThinkphp面試問題及答案

Thinkphp面試問題及答案

Aug 10, 2020 pm 04:50 PM
thinkphp面試題

Thinkphp面試問題及答案

1.如何理解TP中的單一入口檔案?

  答:ThinkPHP採用單一入口模式進行專案部署和訪問,無論完成什麼功能,一個專案都有一個統一(但不一定是唯一)的入口。應該說,所有項目都是從入口文件開始的,並且所有的項目的入口文件是類似的,入口文件中主要包括:

##  定義框架路徑、專案路徑與專案名稱(可選)

  定義偵錯模式與運行模式的相關常數(可選)

  載入框架入口檔案(必須)

2.ThinkPHP中的MVC分層是什麼? (理解)

# ## 

MVC 是一種將應用程式的邏輯層和表現層分開的方法。 ThinkPHP 也是基於MVC設計模式的。 MVC只是一個抽象的概念,並沒有特別明確的規定,ThinkPHP中的MVC分層大致體現在:

# #  模型(M):模型的定義由Model類別來完成。

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

控制器(C):應用程式控制器(核心控制器App類別)和Action控制器都承擔了控制器的角色,Action控制器完成業務流程控制,而應用程式控制器則負責調度控制。  

  視圖(V):由View類別和範本檔案組成,範本做到了100%分離,可以獨立預覽和製作。  

  但實際上,ThinkPHP並不依賴M或V ,也就是說沒有模型或視圖也一樣可以運作。甚至不依賴C,這是因為ThinkPHP在Action之上還有一個總控制器,就是App控制器,負責應用程式的總調度。在沒有C的情況下,必然存在視圖V,否則就不再是完整的應用。  

#########  總而言之,ThinkPHP的MVC模式只是提供了一種敏捷開發的手段,而不是拘泥於MVC本身。 ##########

3.如何理解 ThinkPHP 3.0 架構(核心 行為 驅動)中的行為?

  ##  

「答案:核心行為驅動

 

  TP官方簡稱:CBD 

  核心(Core):就是框架的核心程式碼,不可缺少的東西,TP本身是基於MVC思想開發的框架。  

  行為(Behavior) :行為在新版ThinkPHP的架構裡面起著舉足輕重的作用,在系統核心之上,設定了很多標籤擴展位,而每個標籤位置可以依序執行各自的獨立行為。行為擴展就因此而誕生了,而且許多系統功能也是透過內建的行為擴展完成的,所有行為擴展都是可替換和增加的,由此形成了底層框架可組裝的基礎。
 
  驅動程式( Driver ):資料庫驅動程式、快取驅動程式、標籤庫驅動程式和範本引擎驅動,以及外置的類別擴充。
   框架,即framework。其實就是某種應用的半成品,就是一組組件,供你選來完成自己的系統。簡單說就是使用別人搭好的舞台,你來做表演。而且,框架一般是成熟的,不斷升級的軟體。

4. ThinkPHP如何防止SQL注入? (理解)  

  

#(1)查詢條件盡量使用陣列方式,這是更安全的方式;

#  (2)如果不得已使用字串查詢條件,使用預處理機制; 

  (3)開啟資料欄位類型驗證,可以對數值資料型別做強制轉換;(3.1版本開始已經強制進行字段類型驗證了)

### #############  (4)使用自動驗證和自動完成機制進行針對應用的自訂過濾;### ######### ############  (5)使用欄位類型檢查、自動驗證和自動完成機制等避免惡意資料的輸入。 ############ ###### ###### ####

5. 如何開啟偵錯模式?調試模式有什麼好處?

 

#  開啟除錯模式很簡單,只需要在入口檔案中增加一行常數定義碼:

<?php
 
      //开启调试模式
 
      define(&#39;APP_DEBUG&#39;, true);
 
      //加载框架入口文件
 
      require &#39;./ThinkPHP/ThinkPHP.php&#39;;

  在完成開發階段部署到生產環境後,只需要刪除偵錯模式定義程式碼即可切換到部署模式。開啟偵錯模式後,系統會先載入系統預設的偵錯設定文件,然後載入專案的偵錯設定文件,偵錯模式的優點在於:

## 

   開啟日誌記錄,任何錯誤訊息和偵錯資訊都會詳細記錄,以便於調試;

 

  關閉範本緩存,範本修改可以即時生效;

 

  記錄SQL日誌,方便分析SQL;

 

  關閉欄位快取,資料表欄位修改不受快取影響;

 

  嚴格檢查檔案大小寫(即使是Windows平台),幫助你事先發現Linux部署問題;

 

  可以方便用於開發過程的不同階段,包括開發、測試和演示等任何需要的情況,不同的應用模式可以配置獨立的專案設定檔。

 

6. TP中支援哪些設定模式?優先級?

 

  ThinkPHP在專案配置上創造了獨有的分層設定模式,其配置層次體現在:

 

    慣例配置->專案配置->調試配置->分組配置->擴展配置-> ;動態設定

 

   以上是設定檔的載入順序,因為後面的設定會覆寫先前的同名設定(在沒有生效的前提下),所以優先順序從右到左。

 

7. TP中的URL模式有哪幾種?預設是哪一種

 

  ThinkPHP支援四種URL模式,可以透過設定URL_MODEL參數來定義,包括普通模式、PATHINFO、REWRITE和相容模式。

 

    預設模式為:PATHINFO模式,設定URL_MODEL 為1#

 

8. TP中系統變數有哪些?如何取得系統變數?

 

   取得系統變數的方法:

 

#   只需要在Action中呼叫下面方法:

 

  $this->#cue ("變數名稱",["過濾方法"],["預設值"])

 

#9ThinkPHP框架中D函數與M函數的差異是什麼?

   答:M方法實例化模型無需使用者為每個資料表定義模型類,D方法可以自動偵測模型類,如果存在自訂的模型類,則實例化自訂模型類,如果不存在,則會自動呼叫M方法去實例化Model基底類別。同時對於已實例化過的模型,不會重複去實例化(單例模式)。

#相關學習推薦:thinkphp

##################################################################################################################################################################################” ##########

以上是Thinkphp面試問題及答案的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:cnblogs。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。