<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 3370字,需瀏覽 7分鐘

           ·

          2021-07-09 19:59

          Laravel框架:

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



          問題描述:


          1、渲染模版方式的不同

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


          2、在實際開發(fā)中我們常常遇到這樣的問題,就是開發(fā)地點不固定。

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


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

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


          4、post傳值中注意點不同

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


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

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


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

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


          7、加密方式

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


          8、建表

          Laravel在數(shù)據(jù)庫建表上有自己獨立內(nèi)置的結(jié)構(gòu),可以完全不用借助原生SQL語句或者SQLyogEnt、Navicat這樣的建表工具進行數(shù)據(jù)庫的建立,增刪改查和數(shù)據(jù)交互。我想這可能是它牢牢占據(jù)NO.1的一大亮點,在ThinkPHP中則需要我們借助SQL語句或者建表工具去逐步完善數(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è)某個字段不符合要求或者需要添加字段怎么辦?無須擔(dān)心,從github中pull下項目后在數(shù)據(jù)表里直接修改,只需要用:

          php artisan migrate:refresh


          9、ORM

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

          php artisan make:model XXX;

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

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

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


          10、session的用法

          10.1、ThinkPHP對Session操作進行了封裝,并且無需引入就可以使用,Session的啟動會在應(yīng)用初始化的時候自動執(zhí)行,所以無需手動使用Session::start() 來啟動Session。

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

          // 檢測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');//設(shè)定一個默認(rèn)值,當(dāng)指定鍵名不存在便返回默認(rèn)值$request->session()->all();//返回所有數(shù)據(jù)session(‘k'=>$v);//寫入session保存數(shù)據(jù)以及閃存數(shù)據(jù)session()->flash()和保留特定數(shù)據(jù)->keep([”,”]);也可以自定義session驅(qū)動。



          laravel和thinkphp:

          laravel和thinkphp哪個框架好用

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

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

          鏈接:https://www.jb51.net/article/206655.htm

          瀏覽 32
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  影音先锋成人资源在线 | 立即播放黑人大屌日本女小嫩逼的视频 | 欧美 国产 综合 | 亚洲丝袜性爱 | 大香蕉伊人在线视屏 |