欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Laravel中Sight組件有什么用-創(chuàng)新互聯(lián)

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

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

Laravel開發(fā)速度可以算是最快的了。但是,現(xiàn)在如果加上Sight,那么,你的開發(fā)速度會更加快。
Sight做了什么呢?
Sight是在Server Side實現(xiàn)了一個Presenter層。從而讓你把從服務器中查出的數(shù)據(jù)輕松轉(zhuǎn)換為可展示的數(shù)據(jù)。自從有了Sight,Laravel成了支持Server Side的MVP模式的框架。
為什么要用Sight呢?
一、是加快開發(fā)速度。
二、國內(nèi)的Phper都了解,大廠是禁止SQL聯(lián)表三個表以上的。遇到初學者,會在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è)資訊頻道!

網(wǎng)站標題:Laravel中Sight組件有什么用-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://aaarwkj.com/article30/dpijpo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供建站公司網(wǎng)站收錄、云服務器、商城網(wǎng)站、外貿(mào)建站靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管
日本福利写真在线观看| 99热国产这里只有精品| 亚洲精品国产av一区二区三区| 女厕所偷拍一区二区三区| 日韩在线中文字幕精品| 国产一区二区三区本色| 成人av免费高清在线| 国产综合亚洲欧美日韩在线| 欧美高清一区二区在线播放| 欧美日本一区二区四区| 欧美伦理片三级在线观看| 亚洲av色网在线观看| 国产精品视频一区二区久久| 国产久精品热看久品热久热 | 狠狠躁夜夜躁人人爽蜜桃| 国产一级内射麻豆91| 国产精品毛片一区内射| 一级片高清在线观看国产 | 亚洲日本欧洲二区精品| 日本av东京热在线播放| 国内校园性猛交视频网站| 欧美日韩一区二区三区色拉拉| 日本高清免费黄色录像| 国产精品午夜福利天堂| 一区二区三区午夜激情| 日本中文字幕免费专区| 99热这里在线只有精品| 中文字幕日本人妻少妇| 欧洲女人av天堂精品| 亚洲精品一级二级三级| 精品国产91乱码一区二区三区| 久国产精品一区国产精品| 少妇高潮毛片免费看高潮| 日本福利写真在线观看| 国产成人大片中文字幕在线| 精品国产av一区蜜臀av| 欧美精品成人在线一区| 中文字幕成人资源网站| 国产精品久久久久久久亚洲| 在线播放精品免费不卡| 国产传媒在线播放一区|