欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

laravel與thinkphp之間的區(qū)別與優(yōu)缺點(diǎn)

 更新時(shí)間:2021年03月02日 15:45:30   作者:沐思博客  
這篇文章主要介紹了laravel與thinkphp之間的區(qū)別與優(yōu)缺點(diǎn),從多個(gè)方面對(duì)比,有正好使用這兩個(gè)框架的同學(xué)可以研究下

Laravel框架:

Laravel是當(dāng)今最熟練,流行和廣泛使用的開(kāi)源框架之一,一直秉承著優(yōu)雅的原則,完美支持**composer**,實(shí)現(xiàn)了更豐富的擴(kuò)展,社區(qū)文檔活躍,相較于TP,Lavavel更龐大,安全性也更高,更適合開(kāi)發(fā)大中型項(xiàng)目,被稱為“巨匠型開(kāi)發(fā)框架”。


問(wèn)題描述:

1、渲染模版方式的不同

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

2、在實(shí)際開(kāi)發(fā)中我們常常遇到這樣的問(wèn)題,就是開(kāi)發(fā)地點(diǎn)不固定。

這就造成了我們需要頻繁的更改數(shù)據(jù)庫(kù)配置,給開(kāi)發(fā)工作造成了麻煩。TP依然沒(méi)有避免這個(gè)”災(zāi)難”,在laravel框架中,.env環(huán)境文件的出現(xiàn)解決了這個(gè)麻煩。我們只需要在不同的工作地點(diǎn)配置好.env文件就不避再進(jìn)行配置,因?yàn)闊o(wú)論是git還是svn,“.env是不會(huì)隨著文件一起提交到服務(wù)器的”。

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

作為菜鳥(niǎo)的我目前只使用了use方法,即如何在函數(shù)內(nèi)部使用外層變量。

4、post傳值中注意點(diǎn)不同

在Laravel框架里,由于其考慮到了跨站攻擊,所以如果使用form表單以post方式進(jìn)行傳值時(shí),如果不再form表單中加入{{csrf_field()}}則會(huì)報(bào)出TokenMethodnotfound的語(yǔ)法錯(cuò)誤,而TP框架則需要自己手動(dòng)完成防止跨站攻擊的代碼。

5、條件判斷語(yǔ)句書(shū)寫(xiě)方式的差異

Laravel框架里if else判斷語(yǔ)句和foreach語(yǔ)句,書(shū)寫(xiě)時(shí)必須以@if開(kāi)頭,以@endif結(jié)尾。如果沒(méi)有則報(bào)語(yǔ)法錯(cuò)誤,@foreach @endforeach同理;而TP框架則和PHP語(yǔ)法規(guī)則使用方式一致,直接用if esle語(yǔ)句判斷和foreach循環(huán)遍歷。

6、Laravel里內(nèi)置了大量的方法供開(kāi)發(fā)者使用

在實(shí)際應(yīng)用中更接近于”讓對(duì)象完成一切”的開(kāi)發(fā)思想,比如在后臺(tái)表單驗(yàn)證的時(shí)候,Laravel內(nèi)置了大量的驗(yàn)證方法。例如對(duì)用戶名的驗(yàn)證:我們可以使用validate方法里'username'=>'required'(不能為空)|alpha_dash(必須數(shù)字字母下劃線)|between:6,18(在多少位數(shù)之間);還內(nèi)置了例如email;same:字段名;diff:字段名等大量的方法極大的提高了開(kāi)發(fā)速度。

7、加密方式

在TP框架中,我們對(duì)用戶名密碼進(jìn)行加密時(shí)使用md5();的方式進(jìn)行加密。但md5的缺點(diǎn)在于其可以逆向破解,而且在同等規(guī)則下同樣的密碼md5加密出的字符串是有可能出現(xiàn)相同的,這就降低其安全性。但在Laravel框架中內(nèi)置了”哈?!盚ash加密單向加密方法,且同樣的參數(shù)加密出的字符串是絕對(duì)不會(huì)出現(xiàn)相同的情況,這就提高了安全性。

8、建表

Laravel在數(shù)據(jù)庫(kù)建表上有自己獨(dú)立內(nèi)置的結(jié)構(gòu),可以完全不用借助原生SQL語(yǔ)句或者SQLyogEnt、Navicat這樣的建表工具進(jìn)行數(shù)據(jù)庫(kù)的建立,增刪改查和數(shù)據(jù)交互。我想這可能是它牢牢占據(jù)NO.1的一大亮點(diǎn),在ThinkPHP中則需要我們借助SQL語(yǔ)句或者建表工具去逐步完善數(shù)據(jù)。

8.1、首先我們需要建立模型:我用的是gitbash。gitbash是Windows下的命令工具,基于msys GNU環(huán)境,有g(shù)it分布式版本控制工具,主要應(yīng)用于git。但是在Laravel里也可以直接使用:php artisan make:model Models/GoodsModel -m 完成模型的創(chuàng)建和建表結(jié)構(gòu)的創(chuàng)建(/database/migrations)。

8.2、向goods數(shù)據(jù)表填充數(shù)據(jù),要注意數(shù)據(jù)的類型是嚴(yán)格區(qū)分的,并且一定要加。添加完后使用php artisan migrate命令完成表的創(chuàng)建。

Schema::create(‘goods', function (Blueprint $table) {
$table->increments(‘id')->comment(‘商品主鍵');

$table->string(‘title')->comment(‘商品的標(biāo)題');

8.3、假設(shè)某個(gè)字段不符合要求或者需要添加字段怎么辦?無(wú)須擔(dān)心,從github中pull下項(xiàng)目后在數(shù)據(jù)表里直接修改,只需要用:

php artisan migrate:refresh

9、ORM

在介紹建表時(shí)已經(jīng)使用了創(chuàng)建模型的命令:

php artisan make:model XXX;

Laravel里模型是對(duì)面向?qū)ο箝_(kāi)發(fā)思想最好的詮釋,讓對(duì)象幫我們完成需求。

摘自5.1手冊(cè):(Laravel 的 Eloquent ORM 提供了漂亮、簡(jiǎn)潔的 ActiveRecord 實(shí)現(xiàn)來(lái)和數(shù)據(jù)庫(kù)進(jìn)行交互。每個(gè)數(shù)據(jù)庫(kù)表都有一個(gè)對(duì)應(yīng)的「模型」可用來(lái)跟數(shù)據(jù)表進(jìn)行交互。你可以通過(guò)模型查找數(shù)據(jù)表內(nèi)的數(shù)據(jù),以及將記錄添加到數(shù)據(jù)表中。)

本人在實(shí)際使用中也實(shí)實(shí)在在的感受到了通過(guò)創(chuàng)造模型對(duì)數(shù)據(jù)表操作帶來(lái)的便利,譬如:批量賦值,跨表查詢,刪除模型和軟刪除,模型關(guān)聯(lián),當(dāng)然這些在TP框架中也可以利用模型實(shí)現(xiàn)。這一點(diǎn)屬于仁者見(jiàn)仁智者見(jiàn)智,根據(jù)個(gè)人喜好而定。

10、session的用法

10.1、ThinkPHP對(duì)Session操作進(jìn)行了封裝,并且無(wú)需引入就可以使用,Session的啟動(dòng)會(huì)在應(yīng)用初始化的時(shí)候自動(dòng)執(zhí)行,所以無(wú)需手動(dòng)使用Session::start() 來(lái)啟動(dòng)Session。

使用Session類操作和普通方式調(diào)用$_SESSION來(lái)操作并沒(méi)有本質(zhì)不同,只是Session類很多參數(shù)可以根據(jù)項(xiàng)目配置來(lái)靈活設(shè)置,最常用的操作方法示例:

// 檢測(cè)Session變量是否存在:Session::is_set(‘name');

// 給Session變量賦值:Session::set(‘name','value');

// 獲取Session變量:Session::get(‘name');

10.2、Laravel中Session的常用方法:

$request->session()->get(‘key');//獲取session里的某個(gè)鍵名

$request->session()->set(‘key','default');//設(shè)定一個(gè)默認(rèn)值,當(dāng)指定鍵名不存在便返回默認(rèn)值

$request->session()->all();//返回所有數(shù)據(jù)

session(‘k'=>$v);//寫(xiě)入session保存數(shù)據(jù)

以及閃存數(shù)據(jù)session()->flash()和保留特定數(shù)據(jù)->keep([”,”]);

也可以自定義session驅(qū)動(dòng)。


laravel和thinkphp:

laravel和thinkphp哪個(gè)框架好用

thinkphp,采用mvc思想開(kāi)發(fā),它活動(dòng)范圍主要是國(guó)內(nèi),而且完全免費(fèi)開(kāi)源,學(xué)習(xí)資料非常豐富,對(duì)于新手來(lái)說(shuō)是學(xué)習(xí)php框架最佳的選擇,主要還是都是中文文檔。從5.0版本開(kāi)始,號(hào)稱為API開(kāi)發(fā)而設(shè)計(jì)的高性能框架。配置開(kāi)發(fā)也是非常簡(jiǎn)單,一般下載框架就可以直接開(kāi)發(fā),開(kāi)發(fā)代碼風(fēng)格也符合國(guó)人思想,所以簡(jiǎn)單,快捷,適合新手的php框架。

Laravel框架,為 WEB 藝術(shù)家創(chuàng)造的 PHP 框架,同時(shí)也是目前API開(kāi)發(fā)最好的高級(jí)php框架。我們都知道php主要是網(wǎng)站web開(kāi)發(fā),Laravel框架開(kāi)發(fā)優(yōu)雅,簡(jiǎn)單的代碼,而且Laravel是為人而設(shè)計(jì)框架,開(kāi)發(fā)的思維比較合適中級(jí)程序員思路,所以有經(jīng)驗(yàn)的php程序員比較青睞Laravel框架。新手為什么不強(qiáng)烈推薦呢?主要是Laravel框架是一個(gè)國(guó)際的框架,很多都是英文文檔,雖然還有中文文檔,但是資料有限,很多有用的資料都不是免費(fèi)的,可以說(shuō)是Laravel框架是半開(kāi)源代碼,新手如果沒(méi)有人帶,可能需要學(xué)習(xí)精力是有限的。


到此這篇關(guān)于laravel與thinkphp之間的區(qū)別與優(yōu)缺點(diǎn)的文章就介紹到這了,更多相關(guān)laravel與thinkphp框架比較內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 數(shù)據(jù)庫(kù)中排序的對(duì)比及使用條件詳解

    數(shù)據(jù)庫(kù)中排序的對(duì)比及使用條件詳解

    PHP與MySQL數(shù)據(jù)庫(kù)中排序的對(duì)比及使用條件是本文我們主要要介紹的內(nèi)容,通常來(lái)說(shuō),執(zhí)行效率需要考慮CPU、內(nèi)存和硬盤(pán)等的負(fù)載情況
    2012-02-02
  • PHP實(shí)現(xiàn)二維數(shù)組根據(jù)key進(jìn)行排序

    PHP實(shí)現(xiàn)二維數(shù)組根據(jù)key進(jìn)行排序

    這篇文章主要介紹了PHP實(shí)現(xiàn)二維數(shù)組根據(jù)key進(jìn)行排序,在PHP中內(nèi)置了很多對(duì)數(shù)組進(jìn)行處理的函數(shù),有很多時(shí)候我們直接使用其內(nèi)置函數(shù)就能達(dá)到我們的需求,得到我們所想要的結(jié)果,需要的朋友可以參考下
    2023-10-10
  • php文件壓縮之PHPZip類用法實(shí)例

    php文件壓縮之PHPZip類用法實(shí)例

    這篇文章主要介紹了php文件壓縮之PHPZip類用法,實(shí)例分析了PHPZip類的定義與相關(guān)使用技巧,需要的朋友可以參考下
    2015-06-06
  • WordPress中注冊(cè)菜單與調(diào)用菜單的方法詳解

    WordPress中注冊(cè)菜單與調(diào)用菜單的方法詳解

    這篇文章主要介紹了WordPress中注冊(cè)菜單與調(diào)用菜單的方法詳解,分別依靠register_nav_menus()函數(shù)與wp_nav_menu()函數(shù)的使用,需要的朋友可以參考下
    2015-12-12
  • php抓取并保存網(wǎng)站圖片的實(shí)現(xiàn)代碼

    php抓取并保存網(wǎng)站圖片的實(shí)現(xiàn)代碼

    這篇文章主要介紹了php抓取并保存網(wǎng)站圖片的實(shí)現(xiàn)代碼,網(wǎng)頁(yè)源代碼捕獲,圖片鏈接獲取、分析、并將同樣的圖片鏈接合并功能。功能很全面,需要的朋友可以參考下
    2015-10-10
  • Yii 2.0中場(chǎng)景的使用教程

    Yii 2.0中場(chǎng)景的使用教程

    這篇文章主要給大家介紹了關(guān)于Yii 2.0中場(chǎng)景使用的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。
    2017-06-06
  • php cookie的操作實(shí)現(xiàn)代碼(登錄)

    php cookie的操作實(shí)現(xiàn)代碼(登錄)

    cookie 常用于識(shí)別用戶。cookie 是服務(wù)器留在用戶計(jì)算機(jī)中的小文件。每當(dāng)相同的計(jì)算機(jī)通過(guò)瀏覽器請(qǐng)求頁(yè)面時(shí),它同時(shí)會(huì)發(fā)送 cookie。通過(guò) PHP,您能夠創(chuàng)建并取回 cookie 的值。
    2010-12-12
  • PHP JS Ip地址及域名格式檢測(cè)代碼

    PHP JS Ip地址及域名格式檢測(cè)代碼

    這篇文章主要介紹了php與js中檢測(cè)ip地址及域名的函數(shù),方便大家在寫(xiě)程序中檢測(cè)ip與域名,需要的朋友可以參考下
    2013-09-09
  • 關(guān)于php支持分塊與斷點(diǎn)續(xù)傳文件下載功能代碼

    關(guān)于php支持分塊與斷點(diǎn)續(xù)傳文件下載功能代碼

    一篇關(guān)于php流下載,就是可以支持分塊與斷點(diǎn)續(xù)傳文件下載,有需要的朋友可以看看
    2014-05-05
  • php之使用docker運(yùn)行workerman案例講解

    php之使用docker運(yùn)行workerman案例講解

    這篇文章主要介紹了php之使用docker運(yùn)行workerman案例講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評(píng)論