laravel與thinkphp之間的區別與優缺點

Laravel框架:

Laravel是當今最熟練,流行和普遍使用的開源框架之一,一直秉承着優雅的原則,完美支持**composer**,實現了更豐富的擴展,社區文檔活躍,相較於TP,Lavavel更龐大,安全性也更高,更適合開發大中型項目,被稱爲「巨匠型開發框架」。php


問題描述:

一、渲染模版方式的不一樣

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

二、在實際開發中咱們經常遇到這樣的問題,就是開發地點不固定。

這就形成了咱們須要頻繁的更改數據庫配置,給開發工做形成了麻煩。TP依然沒有避免這個」災難」,在laravel框架中,.env環境文件的出現解決了這個麻煩。咱們只須要在不一樣的工做地點配置好.env文件就不避再進行配置,由於不管是git仍是svn,「.env是不會隨着文件一塊兒提交到服務器的」。laravel

三、Laravel框架提供了大量的閉包

做爲菜鳥的我目前只使用了use方法,即如何在函數內部使用外層變量。git

四、post傳值中注意點不一樣

在Laravel框架裏,因爲其考慮到了跨站***,因此若是使用form表單以post方式進行傳值時,若是再也不form表單中加入{{csrf_field()}}則會報出TokenMethodnotfound的語法錯誤,而TP框架則須要本身手動完成防止跨站***的代碼。程序員

五、條件判斷語句書寫方式的差別

Laravel框架裏if else判斷語句和foreach語句,書寫時必須以@if開頭,以@endif結尾。若是沒有則報語法錯誤,@foreach @endforeach同理;而TP框架則和PHP語法規則使用方式一致,直接用if esle語句判斷和foreach循環遍歷。github

六、Laravel裏內置了大量的方法供開發者使用

在實際應用中更接近於」讓對象完成一切」的開發思想,好比在後臺表單驗證的時候,Laravel內置了大量的驗證方法。例如對用戶名的驗證:咱們可使用validate方法裏'username'=>'required'(不能爲空)|alpha_dash(必須數字字母下劃線)|between:6,18(在多少位數之間);還內置了例如email;same:字段名;diff:字段名等大量的方法極大的提升了開發速度。web

七、加密方式

在TP框架中,咱們對用戶名密碼進行加密時使用md5();的方式進行加密。但md5的缺點在於其能夠逆向破解,並且在同等規則下一樣的密碼md5加密出的字符串是有可能出現相同的,這就下降其安全性。但在Laravel框架中內置了」哈希」Hash加密單向加密方法,且一樣的參數加密出的字符串是絕對不會出現相同的狀況,這就提升了安全性。sql

八、建表

Laravel在數據庫建表上有本身獨立內置的結構,能夠徹底不用藉助原生SQL語句或者SQLyogEnt、Navicat這樣的建表工具進行數據庫的創建,增刪改查和數據交互。我想這多是它緊緊佔據NO.1的一大亮點,在ThinkPHP中則須要咱們藉助SQL語句或者建表工具去逐步完善數據。thinkphp

8.1、首先咱們須要創建模型:我用的是gitbash。gitbash是Windows下的命令工具,基於msys GNU環境,有git分佈式版本控制工具,主要應用於git。可是在Laravel裏也能夠直接使用:php artisan make:model Models/GoodsModel -m 完成模型的建立和建表結構的建立(/database/migrations)。數據庫

8.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

九、ORM

在介紹建表時已經使用了建立模型的命令:

php artisan make:model XXX;

Laravel裏模型是對面向對象開發思想最好的詮釋,讓對象幫咱們完成需求。

摘自5.1手冊:(Laravel 的 Eloquent ORM 提供了漂亮、簡潔的 ActiveRecord 實現來和數據庫進行交互。每一個數據庫表都有一個對應的「模型」可用來跟數據表進行交互。你能夠經過模型查找數據表內的數據,以及將記錄添加到數據表中。)

本人在實際使用中也實實在在的感覺到了經過創造模型對數據表操做帶來的便利,譬如:批量賦值,跨表查詢,刪除模型和軟刪除,模型關聯,固然這些在TP框架中也能夠利用模型實現。這一點屬於仁者見仁智者見智,根據我的喜愛而定。

十、session的用法

10.1、ThinkPHP對Session操做進行了封裝,而且無需引入就可使用,Session的啓動會在應用初始化的時候自動執行,因此無需手動使用Session::start() 來啓動Session。

使用Session類操做和普通方式調用$_SESSION來操做並無本質不一樣,只是Session類不少參數能夠根據項目配置來靈活設置,最經常使用的操做方法示例:

// 檢測Session變量是否存在:Session::is_set(‘name');
// 給Session變量賦值:Session::set(‘name','value');
// 獲取Session變量:Session::get(‘name');

10.2、Laravel中Session的經常使用方法:

$request->session()->get(‘key');//獲取session裏的某個鍵名
$request->session()->set(‘key','default');//設定一個默認值,當指定鍵名不存在便返回默認值
$request->session()->all();//返回全部數據
session(‘k'=>$v);//寫入session保存數據
以及閃存數據session()->flash()和保留特定數據->keep([」,」]);
也能夠自定義session驅動。

laravel和thinkphp:

laravel和thinkphp哪一個框架好用

thinkphp,採用mvc思想開發,它活動範圍主要是國內,並且徹底免費開源,學習資料很是豐富,對於新手來講是學習php框架最佳的選擇,主要仍是都是中文文檔。從5.0版本開始,號稱爲API開發而設計的高性能框架。配置開發也是很是簡單,通常下載框架就能夠直接開發,開發代碼風格也符合國人思想,因此簡單,快捷,適合新手的php框架。

Laravel框架,爲 WEB 藝術家創造的 PHP 框架,同時也是目前API開發最好的高級php框架。咱們都知道php主要是網站web開發,Laravel框架開發優雅,簡單的代碼,並且Laravel是爲人而設計框架,開發的思惟比較合適中級程序員思路,因此有經驗的php程序員比較青睞Laravel框架。新手爲何不強烈推薦呢?主要是Laravel框架是一個國際的框架,不少都是英文文檔,雖然還有中文文檔,可是資料有限,不少有用的資料都不是免費的,能夠說是Laravel框架是半開源代碼,新手若是沒有人帶,可能須要學習精力是有限的。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

相關文章
相關標籤/搜索