php面試tp3和tp5的區別的簡單介紹

本文目錄一覽:

tp3 和 tp5 的區別

問道中,關於座機,首先3 2階與5階同等級吃了風靈丸所附加的效果是一樣的。不同點,5階是正版座機,可以融合到6階,而3 2階屬於盜版5階,模樣與三階一樣,是由三階融合而來,不能再融合。通常精怪變為可騎乘的座機,系統贈送一個月的風靈丸效果,這個效果是有時間限制的。

ThinkPHP 5.0和ThinkPHP 3.2的區別

5.0版本和之前版本的差異較大,本篇對熟悉3.2版本的用戶給出了一些5.0的主要區別。

URL和路由

5.0的URL訪問不再支持普通URL模式,路由也不支持正則路由定義,而是全部改為規則路由配合變量規則(正則定義)的方式:

主要改進如下;

增加路由變量規則;

增加組合變量支持;

增加資源路由;

增加路由分組;

增加閉包定義支持;

增加MISS路由定義;

支持URL路由規則反解析;

請求對象和響應對象

5.0新增了請求對象Request和響應對象Response,Request統一處理請求和獲取請求信息,Response對象負責輸出客戶端或者瀏覽器響應。

模塊和控制器

控制器的命名空間有所調整,並且可以無需繼承任何的控制器類。

應用命名空間統一為app(可定義)而不是模塊名;

控制器的類名默認不帶Controller後綴,可以配置開啟use_controller_suffix參數啟用控制器類後綴;

控制器操作方法採用return方式返回數據 而非直接輸出;

廢除原來的操作前後置方法;

增加beforeActionList屬性定義前置操作;

支持任意層次的控制器定義和訪問;

URL訪問支持自動定位控制器;

數據庫

5.0的數據庫查詢功能增強,原先需要通過模型才能使用的鏈式查詢可以直接通過Db類調用,原來的M函數調用可以改用db函數,例如:

3.2版本

M(‘User’)-where([‘name’=’thinkphp’])-find();

5.0版本

db(‘User’)-where(‘name’,’thinkphp’)-find();

主要改進如下:

支持鏈式查詢操作;

數據查詢支持返回對象、數組和PDOStatement對象;

數據集查詢支持返回數組和Collection對象;

增加查詢構造器,查詢語法改變;

支持閉包查詢;

支持分塊查詢;

支持視圖查詢;

增加SQL監聽事件;

模型

5.0的模型變化是最大的,基本上模型是完全面向對象的概念,包括關聯模型,模型類的後綴不再帶Model,直接由命名空間區分,原來的D函數調用改為model函數,並且必須創建對應的模型類,例如:

3.2版本

D(‘User’)-where([‘name’=’thinkphp’])-find();

5.0版本

model(‘User’)-where(‘name’,’thinkphp’)-find();

主要改進包括:

重構關聯模型;

支持聚合模型;

廢除視圖模型(改為數據庫的視圖查詢方法);

模型的擴展採用Trait機制;

增加獲取器和修改器;

增加時間戳自動寫入;

增加類型字段轉換;

數組訪問支持;

JSON序列化支持;

自動驗證和自動完成

5.0的數據自動驗證和自動完成和3.2版本區別較大,5.0的數據驗證採用驗證器定義並且通過think\Validate類進行統一的驗證。自動完成則通過在模型裡面定義修改器來完成。

異常

5.0對錯誤零容忍,默認情況下會對任何級別的錯誤拋出異常(但可以在應用公共文件中設置錯誤級別),並且重新設計了異常頁面,展示了詳盡的錯誤信息,便於調試。

調試和日誌

5.0的頁面Trace強化,支持瀏覽器控制台查看Trace信息。

5.0的日誌驅動增加Socket方式,採用SocketLog支持遠程調試。

常量

5.0版本廢棄了原來的大部分常量定義,僅僅保留了框架的路徑常量定義,其餘的常量可以使用App類或者Request類的相關屬性或者方法來完成,或者自己重新定義需要的常量。

廢除的常量包括:

REQUEST_METHOD IS_GET IS_POST IS_PUT IS_DELETE IS_AJAX __EXT__ COMMON_MODULE MODULE_NAME CONTROLLER_NAME ACTION_NAME APP_NAMESPACE APP_DEBUG MODULE_PATH

函數

5.0版本核心框架不依賴任何自定義函數,但仍然封裝了一些常用功能到助手函數,你可以隨意重新定義或者增加助手函數。

純php和tp5框架區別是什麼?

框架是基於php原生代碼寫出來的一套程序 說白了就是基於需求而研發的高端產物 就像因為需要交易 所以有了市場 你可以選擇籠統的學習 也可以選擇騰訊課堂

原創文章,作者:ZXZG,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/147092.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ZXZG的頭像ZXZG
上一篇 2024-11-01 14:05
下一篇 2024-11-01 14:05

相關推薦

  • Python中new和init的區別

    new和init都是Python中常用的魔法方法,它們分別負責對象的創建和初始化,本文將從多個角度詳細闡述它們的區別。 一、創建對象 new方法是用來創建一個對象的,它是一個類級別…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Sublime Test與Python的區別

    Sublime Text是一款流行的文本編輯器,而Python是一種廣泛使用的編程語言。雖然Sublime Text可以用於編寫Python代碼,但它們之間有很多不同之處。接下來從…

    編程 2025-04-29
  • Shell腳本與Python腳本的區別

    本文將從多個方面對Shell腳本與Python腳本的區別做詳細的闡述。 一、語法差異 Shell腳本和Python腳本的語法存在明顯差異。 Shell腳本是一種基於字符命令行的語言…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的“畫筆”在窗口中繪製…

    編程 2025-04-29
  • Python中while語句和for語句的區別

    while語句和for語句是Python中兩種常見的循環語句,它們都可以用於重複執行一段代碼。然而,它們的語法和適用場景有所不同。本文將從多個方面詳細闡述Python中while語…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Web程序和桌面程序的區別

    Web程序和桌面程序都是進行軟件開發的方式,但是它們之間存在很大的區別。本文將從多角度進行闡述。 一、運行方式 Web程序運行於互聯網上,用戶可以通過使用瀏覽器來訪問它。而桌面程序…

    編程 2025-04-29

發表回復

登錄後才能評論