1. 程式人生 > >ThinkPHP5與ThinkPHP3的一些異同點

ThinkPHP5與ThinkPHP3的一些異同點

官方說過了,不要用3的思維去用5。這樣說吧算是官方出的倆個產品,並非版本迭代的關係。目錄結構不一樣,有些函式名不一樣。如果是傳統的mvc網站,用tp3.2。如果是做介面,就用tp5。前後主要差別應該就是對於view的處理。

模型例項化

TP5取消了自動例項化模型的M方法,轉而使用了新的例項化模型方法。沒有自動例項化則必須自己新建模型類,然後自己例項化,這就有點類似D方法。這裡與D方法的功能類似的有一個model的方法,功能上完全可以替換使用

U方法

U方法是TP中的生成路由的內建方法,現在這個方法可以完全使用url方法替換

TP5中取消了IS_GET和IS_POST方法

如果想繼續使用可以在專案中自定義一下,如下:

 define('IS_GET',Request::instance()->isGet());
 define('IS_POST',       Request::instance()->isPost());
  • 1
  • 2
  • 1
  • 2

原來的TP的I方法

之前的TP有個I方法用來接收請求引數,目前可以使用input方法替代

需要注意的是新增方法

現在的單條新增方法改為了save方法,這個是以前的更新方法,而且需要注意的是更新的方式也有區別。新增可以直接用save,而更新則需要加isUpdate(true)

model("")->isUpdate(true)->save($data);
  • 1
  • 1

TP5和原來版本TP差距最大的功能性的地方在返回,現在幾乎所有的資料庫查詢都會返回物件

$menuurl->find($menu_id);//此方法返回一個物件,可以使用->toArray()方法轉換為陣列
$this->where($condition)->order($order)->select();//此方法返回一個物件陣列,所以要使用資料也必須轉換,當然可以直接用物件
  • 1
  • 2
  • 1
  • 2

C方法被config方法替換

資料庫配置單獨在database.php中,想獲取引數使用

config('database.prefix')
  • 1
  • 1

頁面中目前有自定義常量的方法,使用配置的方法類似之前版本

如果需要全域性替換的話,可以直接在配置檔案中新增:
'view_replace_str'  =>  [
    '__PUBLIC__'=>'/public/',
    '__ROOT__' => '/',
]
或者直接使用常量配置
{$Think.config.PUBLIC}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

預設的引擎標籤可修改,也就是之前的<>這種可以繼續用

        // 模板引擎普通標籤開始標記
        'tpl_begin'    => '{',
        // 模板引擎普通標籤結束標記
        'tpl_end'      => '}',
        // 標籤庫標籤開始標記
        'taglib_begin' => '{',
        // 標籤庫標籤結束標記
        'taglib_end'   => '}',

相關推薦

ThinkPHP5ThinkPHP3一些異同

官方說過了,不要用3的思維去用5。這樣說吧算是官方出的倆個產品,並非版本迭代的關係。目錄結構不一樣,有些函式名不一樣。如果是傳統的mvc網站,用tp3.2。如果是做介面,就用tp5。前後主要差別應該就是對於view的處理。 模型例項化 TP5取消了自動例項化模型的M方

MongoDB複製集Raft協議異同分析

此文已由作者溫正湖授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 一、日誌複製流程: a、raft leader節點在接收client請求後,先將請求寫到日誌中,再將日誌通過AppendEntries RPC傳送到follow上。如果收到了大多數follow的確認

java中介面抽象類異同在專案中的應用

1包 作用: 管理類 定義: package 包名; package必須作為原始檔 的第一條語句 包名的命名規則 使用其他包中的類 完整類名 先import匯入類,再使用 2 Eclipse 3 訪問許可權 類的訪問許可權: 公共類, 非公共類 公共類的應用場景

KafkaFlume的異同

Kafka和flume作為資料採集通道的區別: 將資料從某一個數據源匯入HDFS或者HBase,Kafka是一個半成品,需要自己完成消費者程式的編寫,而flume只需要改配置就可以導資料進入HDFS或者HBase,相當於Flume自身包含了消費者程式,不需要程式

Java進階(四十六)簡述ArrayList、VectorLinkedList的異同

簡述ArrayList、Vector與LinkedList的異同點   Collection類的繼承圖如下:   從圖中可以看出,LinkedList與ArrayList、ArrayDeque這三者都實現了List介面.所有使用方式也很相似,主要區別在於

TDD-LTEFDD-LTE異同比較

時下LTE有TDD(時分雙工)和FDD(頻分雙工)兩種雙工方式。今天我們稍微比較一下兩者的異同點,通過比較,深入瞭解學習並掌握這兩者相關的知識。 首先我們來看相同點: 通道頻寬配置靈活:1.4M3M5M10M15M20M 多址方式:下行DL:OFDMA     上行UL:S

簡述servletfilter的異同

概念 servlet: 是一種執行伺服器端的Java應用程式,具有獨立於平臺和協議的特性,可動態的生成web頁面,工作在客戶端請求與伺服器響應的中間層。 filter: 是一個可複用的程式碼片段

LaravelthinkPHP的異同

主要區別:(thinkPHP更適合國人的編碼習慣) 1.渲染模版方式的不同: 在Laravel框架裡,使用return view()來渲染模版; 而ThinkPHP裡則使用了$this->display()的方式渲染模版; 2.在Laravel框架裡,由於

thinkphp5.0thinkphp3.2的幾個不同之處(主要寫5.0的)

5.0的入口檔案是放在public資料夾下面,所以如果要單獨配置站點,則需要選到public資料夾 模板渲染方面:5.0使用的是:return $this->fetch();(fetch裡不帶引數,是自動定位到當前操作的模板檔案,如果帶引數就跟原來的一樣) 資料庫方面:5.0在

keras-yolo3遇到的一些注意解決思路

(keras-yolo3原始碼分析已經滿天飛,不重複解讀) 問題1:原始的yolo3原始碼,data_generator過程和模型train過程是阻塞式的,模型train速度會受到data產生的影響 解決思路:單獨開一個thread,將data_generator過程

WebSocketSocket、TCP、HTTP的關係和異同

今天來講一下與其他協議的區別和相同點,讓各位同學能夠更加深入的去了解和運用各種協議。 1 什麼是WebSocket?   WebSocket從滿足基於Web的日益增長的實時通訊需求應運而生,解決了客戶端發起多個Http請求到伺服器資源瀏覽器必須要在經過長時間的輪詢問題,實

音訊處理壓縮的一些技術和演算法

音訊處理的方法主要包括: 降噪、回聲消除、自動增益、靜音檢測、噪聲控制 音訊壓縮演算法需要看音訊編碼的格式: G.7xx、iLBC、SILK、OPUS、AAC、AC3、apt-x(ADPCM)等等

粒子群演算法4——粒子群演算法蟻群演算法的異同

群體智慧演算法家族的兩個重要成員就是粒子群演算法與蟻群演算法。基本思想都是模擬自然界生物群體行為來構造隨機優化演算法的,不同的是粒子群演算法模擬鳥類群體行為,而蟻群演算法模擬螞蟻覓食原理。 1.相同點 (1)都是一類不確定演算法。不確定性體現了自然界生物的生物機制,並且在求解某些特定問題方面優於確定性演算法。

vueangularjs、react的異同

vue和angularjs:1、兩者都支援過濾器(自定義過濾器),都支援指令(自定義指令),實現雙向繫結的時候都比較簡答,不像react那樣麻煩。2、兩者都不支援IE8以下的瀏覽器。3、vue相對於angular來說要更容易上手,初學者開啟菜鳥可以看看,直接看官網也可以,an

activemq rabbitmq kfaka的異同

增加 fse 日誌系統 增加節點 配置 可用性 分布式 作者 應該 01)kfaka與傳統意義上的mq的區別 更快!單機上萬TPS 傳統的MQ,消息被消化掉後會被mq刪除,而kafka中消息被消化後不會被刪除,而是到配置的expire時間後,才刪除 傳統的MQ,消息的O

Random Forest GBDT 的異同

blog cal b2c -s 隨機森林 number error one 總結 曾經在看用RF和GBDT的時候,以為是非常相似的兩個算法,都是屬於集成算法,可是細致研究之後,發現他們根本全然不同。以下總結基本的一些不同點 Random Forest: baggin

php其他一些相關工具的安裝步驟分享

you 記錄 有道 工具 nbsp 寫博客 安裝php inux ref 現在很少花時間來專門寫博客,都是把平時看到用到的東西像隨筆一樣記錄在雲筆記上。 在這兒分享一些php相關的技術安裝過程: linux下編譯安裝php:php安裝 phpunit安裝過程:phpuni

RequireJS SeaJS 的異同

module 第三方 服務器 get scrip jquery 多說 服務 理念 相同之處 RequireJS 和 SeaJS 都是模塊加載器,倡導的是一種模塊化開發理念,核心價值是讓 JavaScript 的模塊化開發變得更簡單自然。 不同之處 兩者的區別如下:

關於小程序的坑(註意的

ges 不定 log tom 文件中 排列 不能 好用 蘋果 一、在使用滾動視圖scroll-view、橫向滾動(scroll-x)時:   1、要加點樣式才生效:white-space:nowrap。   2、不能設置display:flex,用display:inlin

Java web 常用的一些功能

end dir redirect 調整 response rect send war resp 1、轉向和重定向 1、request.getRequestDispatcher("a.jsp").forward(rquest,response); request轉發 它可以保