1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      Laravel中Sight組件有什么用-創(chuàng)新互聯(lián)

      這篇文章主要介紹Laravel中Sight組件有什么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

      成都創(chuàng)新互聯(lián)公司-云計算及IDC服務(wù)提供商,涵蓋公有云、IDC機房租用、溫江服務(wù)器托管、等保安全、私有云建設(shè)等企業(yè)級互聯(lián)網(wǎng)基礎(chǔ)服務(wù),聯(lián)系熱線:18980820575

      Laravel開發(fā)速度可以算是最快的了。但是,現(xiàn)在如果加上Sight,那么,你的開發(fā)速度會更加快。
      Sight做了什么呢?
      Sight是在Server Side實現(xiàn)了一個Presenter層。從而讓你把從服務(wù)器中查出的數(shù)據(jù)輕松轉(zhuǎn)換為可展示的數(shù)據(jù)。自從有了Sight,Laravel成了支持Server Side的MVP模式的框架。
      為什么要用Sight呢?
      一、是加快開發(fā)速度。
      二、國內(nèi)的Phper都了解,大廠是禁止SQL聯(lián)表三個表以上的。遇到初學(xué)者,會在FOR循環(huán)中查詢數(shù)據(jù)庫。如果你禁止了,則還有可能是,他們把相關(guān)ID PLUCK出來。查出結(jié)果,然后,再FOR循環(huán)中嵌套FOR循環(huán)去查相關(guān)的關(guān)聯(lián)數(shù)據(jù)。
      Sight則是提供了很好的Pluck函數(shù),查出ID后,請求到相關(guān)數(shù)據(jù)交給Sight,Sight會為你拼接好數(shù)據(jù)。它的做法是通過關(guān)聯(lián)ID為KEY把數(shù)據(jù)整理好。從而大大提升了程序效率。
      三、Sight的使用相當簡單。
      比如以下示例,幾乎類似于Model的使用。

      namespace App\Presenter
      
      use Bardoqi\Sight\Presenter;
      use Bardoqi\Sight\Traits\PresenterTrait;
      use Bardoqi\Sight\Enums\MappingTypeEnum 
      use Bardoqi\Sight\Enums\PaginateTypeEnum 
      use App\Repositories\ArticleRepository;
      use App\Repositories\UserRepository; 
      
      class ArticlePresenter extents Presenter
      {
         use PresenterTrait;
      
         public function getArticleList($where)
         {
             $articleArray = ArticleRepository::getList($where);
             $user_ids = $this->selectFields('id','title','created_at','created_by')
                  ->fromLocal($articleArray,'articles')
                  ->pluck('created_by');
             $users = UserRepository::getUsersWithIds($user_ids);
             $this->innerJoinForeign($users,'userss')
                  ->onRelationByObject(Relation::of()
                      ->localAlias('articles')
                      ->localField('created_by')
                      ->foreignAlias('users')
                      ->foreighField('id')) 
                  ->addFieldMappingByObject(FieldMapping::of()
                      ->key('created_at')
                      ->src('created_at')
                      ->type(MappingTypeEnum::METHOD_NAME))
                  ->addFieldMappingByObject(FieldMapping::of()
                      ->key('created_by')
                      ->src('user_name')
                      ->type(MappingTypeEnum::JOIN_FIELD));         
             return $this->toPaginateArray(PaginateTypeEnum::PAGINATE_API);
         }
      }

      上例中,代碼則是把created_at從int轉(zhuǎn)換成了時間,把created_by從user id轉(zhuǎn)換成了用戶名。
      我們看出:created_at所用的是MappingTypeEnum::METHOD_NAME,這個方法在哪里呢,是在PresenterTrait中。所以,你也可以定義自己的Trait。
      created_by則是直接讀取關(guān)聯(lián)數(shù)組中的user_name,因為用的是MappingTypeEnum::JOIN_FIELD。
      上面代碼看起來有些長,但是,onRelationByObject()可以改用 onRelation()傳參方式,代碼就短了。
      同樣addFieldMappingByObject(),改用addFieldMappingList()用數(shù)組傳入,代碼也短了。

      Sight遠遠不只是這一點功能,它不僅支持MySQL查出的數(shù)據(jù),同時支持ElasticSearch查出的數(shù)據(jù)。
      雖然是純數(shù)組操作,它一樣也有innerJoin和outerJoin,并且,有hasOne,hasMany ……
      當然,還有更多的功能,這個你就要仔細看文檔了。

      Sight試圖解決你查出數(shù)據(jù)后,將其轉(zhuǎn)換成可展示數(shù)據(jù)中的不爽,它做得很好,真的能讓你 Coding More Happy; Coding More Quickly!

      Github 地址: https://github.com/BardoQi/Sight

      Sight——殺手級提升Laravel開發(fā)速度的組件現(xiàn)在開源了!趕緊FORK,趕緊STAR!

      以上是“Laravel中Sight組件有什么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


      當前標題:Laravel中Sight組件有什么用-創(chuàng)新互聯(lián)
      文章路徑:http://www.ef60e0e.cn/article/dpijpo.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        平潭县| 建湖县| 乌审旗| 昌都县| 扶绥县| 正阳县| 永清县| 兴化市| 广昌县| 乾安县| 临澧县| 昌图县| 山西省| 馆陶县| 柳州市| 阳新县| 紫云| 西青区| 中江县| 临海市| 平凉市| 临猗县| 砚山县| 新巴尔虎右旗| 鄂州市| 宁化县| 河间市| 金湖县| 红安县| 常熟市| 勃利县| 疏附县| 犍为县| 南乐县| 荣昌县| 双江| 房产| 靖西县| 绥德县| 图片| 饶阳县|