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());
原來的TP的I方法
之前的TP有個I方法用來接收請求參數,目前可以使用input方法取代
要注意的是新增方法
現在的單一新增方法改為save方法,這個是以前的更新方法,需要注意的是更新的方式也有差別。新增可以直接用save,而更新則需要加isUpdate(true)
model("")->isUpdate(true)->save($data);
TP5和原來版本TP差距最大的功能性的地方在返回,現在幾乎所有的資料庫查詢都會傳回物件
$menuurl->find($menu_id);//此方法返回一个对象,可以使用->toArray()方法转换为数组 $this->where($condition)->order($order)->select();//此方法返回一个对象数组,所以要使用数据也必须转换,当然可以直接用对象
C方法被config方法取代
資料庫配置單獨在database.php中,想取得參數使用
config('database.prefix')
頁面中目前有自訂常數的方法,使用配置的方法類似先前版本
如果需要全域替換的話,可以直接在設定檔中新增:
'view_replace_str' => [ '__PUBLIC__'=>'/public/', '__ROOT__' => '/', ]
或直接使用常數配置
{$Think.config.PUBLIC}
預設的引擎標籤可修改,也就是先前的a8093152e673feb7aba1828c43532094這種可以繼續用
// 模板引擎普通标签开始标记 'tpl_begin' => '{', // 模板引擎普通标签结束标记 'tpl_end' => '}', // 标签库标签开始标记 'taglib_begin' => '{', // 标签库标签结束标记 'taglib_end' => '}',
本文來自ThinkPHP框架技術文章欄位:http://www.php.cn/phpkj/thinkphp/
以上是thinkphp5和thinkphp3差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!