1. 程式人生 > >TP5和TP3.2區別

TP5和TP3.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版本核心框架不依賴任何自定義函式,但仍然封裝了一些常用功能到助手函shu

相關推薦

TP5TP3.2區別

5.0版本和之前版本的差異較大,本篇對熟悉3.2版本的使用者給出了一些5.0的主要區別。URL和路由5.0的URL訪問不再支援普通URL模式,路由也不支援正則路由定義,而是全部改為規則路由配合變數規則(

tp5tp3.2區別

萬變不離其宗,tp5和tp3.2雖說是差別很大,但是套路大家都懂得。只要我們瞭解了他們的區別,再去學tp5,豈不是如魚得水。 好,那我們來了解一下tp5和tp3.2的區別。 1,入口檔案的繫結 我們都知道thinkphp是一個單入口框架,它所有的請求都通過public/index.php

TP5TP3區別@郝少聰

樓主學TP框架就是學的TP5.0,目前公司使用TP3.2.3,今天就和大家總結一下基礎區別: 話不多說,直接上碼 <?php // TP5.0中在Controller呼叫資料庫表直接可以使用Db::table('表名') use think\Db; $res = D

TP3.2TP5.0之間的區別

URL和路由 5.0的url訪問不再支援普通url模式 ,路由也不支援正則路由定義,而是全部改為規則路由配合變數規則(正則定義)的方式: 主要改進如下: 增加路由變數規則 增加組合變數支援 增加資源路由 增加路由分組 增加閉包定義支援 支援URL路由規則反

TP3.2】詳解_initialize() __construct() 的區別聯系

instance ins 執行 構造方法 ces 實例化 direct control 初始化 1、假設 一個AdminController.class.php 集成至 \Think\Controller 類, 我們來看看Controller.class.php的構造方法源

thinkPHP3.2TP3.1有什麼區別

3.2版本在此前的3.1.3版本之上,引入了名稱空間,強化了驅動化和行為,增強了模組化的概念和對雲平臺的支援,並改進了諸多的細節。 主要改進包括: 模組化架構的全新設計 全新名稱空間和自動匯入機制 改進的路由功能 主題的動態切換支援 更強大的Action引數繫結

奪命雷公狗TP3.2.3商城11-----後臺頭部左側導航分離

代碼 使用 phpstudy 效果 ima 導航 header dmi admin 我們來將網站後臺的頭部和左側的導航分離出來: 然後在模版中找到類為:topbar-inner clearfix 的地方: 然後我們在然後在D:\phpStudy\WWW\sho

python23的區別,怎麽樣做到輕松切換23

除了 之間 空格 Go 遍歷 error 努力 spa 捕獲異常 以下是菜鳥教程列舉的。這些零散的改變需要註意。 下面這些東西可能平時的程序根本沒用到,或者稍加註意就可以了。但2和3最主要的區別是,掌握編碼。 編碼在所有程序中無處不在,處理不好,要麽亂碼,要麽編碼

python的基礎23的區別,以及forwhile的循環

python基礎;2和3的區別 ;字符編碼;if;whil;for循環 ; 第三方庫 字典 1、python2\python3的區別:python2\python3的區別:一、代碼重復,python2代碼重復功能復用,夾雜其他語言的部分,不規範python3進行整合,簡潔優美編譯型:一次性

TP5模型belongsTohasOne的區別

表示 add 舉例 address 出現 ddr 但是 一對一 兩個 在使用tp5模型的ORM的時候出現belongsTo和hasOne都有表示一對一的關系,但是二者並不相同。以下舉例說明兩者的區別: 首先有user表 字段 id name password字段 然後有us

TP3.2.*】解決session過期不失效 設置不成功問題

lifetime runtime isset 清除 不成功 use 問題 func true 1、背景:本來我想設置session有效期1800秒即30分鐘 失效的,可是實際使用TP3.2.0的時候發現,登錄了幾天用戶竟然沒有失效,一直都可以登錄。 2、解決: 2.1

TP5 助手函數與TP3.2單字母函數

數據庫 direct 狀態 記錄日誌 view 5.0 red 置配 request 一、TP5 助手函數 助手函數描述 abort 中斷執行並發送HTTP狀態碼 action 調用控制器類的操作 cache 緩存管理 config 獲取和設置配置參數

2.intinteger的區別

以前一直沒有思考,為啥要有一個int還要有一個integer。 實際上: 1. Ingeter是int的包裝類,int的初值為0,Ingeter的初值為null; 2.初始化的時候,int i =1;    Integer i= new Integer(1);

php5.5php7.2 方括號賦值的不同區別結果 (織夢升級到php7除錯後臺無法刪除欄目的問題)

php5.5和php7.2 方括號賦值的不同區別結果  織夢升級到php7除錯後臺無法刪除欄目的問題程式碼簡化例子如下: <?php /** * */ class TestName { var $string; var $arr; function __con

Qt學習筆記2:QMainWindowQWidget的區別

在Qt工程建立時,Qt Widget Application模板下提供了不同的父類繼承。 這裡,主要分析一下QMainWindow和QWidget的區別。 建立工程 分別以QMainWindow和QWidget為基類建立工程,工程建立完成後,如下圖所示: Qt會自動建

Angularjs(1.x)Angular(2+)資料髒檢測之間的區別

轉2篇個人認為寫的很好的: Angularjs(1.x)  http://www.cnblogs.com/likeFlyingFish/p/6183630.html Angular(2+)  https://blog.csdn.net/u011256637/article/d

Angularjs(1.x)Angular(2+)數據臟檢測之間的區別

ons about 之間 loop 是否 imp temp some its 轉2篇個人認為寫的很好的: Angularjs(1.x) http://www.cnblogs.com/likeFlyingFish/p/6183630.html Angular(2+) ht

ThinkPHP5.0版本ThinkPHP3.2版本的區別

5.0版本和之前版本的差異較大,本篇對熟悉3.2版本的使用者給出了一些5.0的主要區別。 URL和路由 5.0的URL訪問不再支援普通URL模式,路由也不支援正則路由定義,而是全部改為規則路由配合變數規則(正則定義)的方式: 主要改進如下; 增加路由變數規則; 增加組合變

每日一python(2):__str____repr__的區別

直接上程式碼 >>> class A: --- def __str__(self): --- return "這是一個字串 + 1" --- def __repr__(self): --- return "這是一個字串 + 2" >>

thinkphp5.0thinkphp3.2區別不同之處

先看目錄結構: thinkphp 5.0的目錄結構, 文件:https://www.kancloud.cn/manual/thinkphp5/118008 project 應用部署目錄 ├─application 應用目錄(可設定) │ ├─common 公