首頁 >web前端 >前端問答 >thinkphp和laravel的差別是什麼

thinkphp和laravel的差別是什麼

青灯夜游
青灯夜游原創
2021-09-17 14:59:016661瀏覽

區別:1、Laravel用「return view()」來渲染模版;ThinkPHP用「$this->display()」方式渲染模版。 2.post傳值中註意點不同。 3.條件判斷語句書寫方式的差異。 4.加密方式不同。 5.建表方式不同。

thinkphp和laravel的差別是什麼

本教學操作環境:windows7系統、Laravel6版、Dell G3電腦。

主要差異:(thinkPHP更適合國人的編碼習慣)

1、渲染模版方式的不同

在Laravel框架裡,使用return view()來渲染模版;而ThinkPHP裡則使用了$this->display()的方式渲染模版。

2、post傳值中註意點不同

在Laravel框架裡,由於其考慮到了跨站攻擊,所以如果使用form表單以post方式進行傳值時,如果不再form表單中加入{{csrf_field()}}則會報出TokenMethodnotfound的語法錯誤,而TP框架則需要自行手動完成防止跨站攻擊的程式碼。

3、條件判斷語句書寫方式的差異

Laravel框架裡if else判斷語句和foreach語句,書寫時必須以@if開頭,以@endif結尾。如果沒有則報語法錯誤,@foreach @endforeach同理;

而TP框架則和PHP語法規則使用方式一致,直接用if esle語句判斷和foreach循環遍歷。

4、加密方式

在TP框架中,我們對使用者名稱密碼進行加密時使用md5();的方式進行加密。但md5的缺點在於其可以逆向破解,而且在同等規則下同樣的密碼md5加密出的字串是有可能出現相同的,這就降低其安全性。但在Laravel框架中內建了」哈希」Hash加密單向加密方法,且同樣的參數加密出的字串是絕對不會出現相同的情況,這就提高了安全性。

5、建表

Laravel在資料庫建表上有自己獨立內建的結構,可以完全不用藉助原生SQL語句或SQLyogEnt、Navicat這樣的建表工具進行資料庫的建立,增刪改查和資料互動。我想這可能是它牢牢佔據NO.1的一大亮點,在ThinkPHP中則需要我們藉助SQL語句或是建表工具去逐步完善資料。

5.1、首先我們需要建立模型:我用的是gitbash。 gitbash是Windows下的命令工具,基於msys GNU環境,有git分散式版本控制工具,主要應用於git。但在Laravel裡也可以直接使用:php artisan make:model Models/GoodsModel -m 完成模型的建立與建表結構的建立(/database/migrations)。

5.2、向goods數據表填充數據,要注意數據的類型是嚴格區分的,並且一定要加。新增後使用php artisan migrate指令完成表格的建立。

Schema::create(‘goods', function (Blueprint $table) {
$table->increments(‘id')->comment(‘商品主键');
$table->string(‘title')->comment(‘商品的标题');

8.3、假設某個欄位不符合要求或需要新增欄位怎麼辦?無須擔心,從github中pull下項目後在資料表裡直接修改,只需要用:

php artisan migrate:refresh

6、Laravel是一個重路由的框架(5.4),所有的功能都是由路由發起的,哪怕沒有控制器方法,只要寫了路由就能夠存取,thinkPHP(3.2),必須要有控制器方法才能正常存取;

7、laravel具有強大的社區化擴展,(composer擴展自動加載);

9、laravel具有強大的Blade模版引擎;

9、中間件,Laravel特點,可以實現訪問前後的處理,例如請求和返回,權限認證等;

#相關推薦:最新的五個Laravel視頻教程

以上是thinkphp和laravel的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn