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

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)

綿陽服務器托管
日本 影院 一区 二区| 亚洲丰满熟女乱一区二区三区| 国产美女直播亚洲一区色| 国产精品黄色自拍合集| 91精品啪在线观看国产日本| 人妻一区二区三区免看| 亚洲综合激情另类专区| 激情偷拍一区二区三区视频| 国产丝袜美女一区二区| 夜夜草av一区二区三区| 日韩视频 一区 二区| 亚洲丰满性感美女av| 国内午夜福利精品视频| 成年人免费视频网站国产| 国产av剧情极品丝袜美女| 国产精品久久中文字幕亚洲| 99精品国产中文字幕| 国产又黄又粗的视频| 国语对白精品视频在线| 夫妻性生活在线视频一级片| 激情综合五月激情综合| 日韩黄色精品中文视频| 亚洲欧美精品一区二区三区| 久久人热视频这里只有精品 | 中文字幕国产成人在线视频| 欧美精品亚洲精品日韩| 91狠狠综合久久精品| 国产精品乱码一区二区视频| 91亚洲熟妇国产熟妇肥婆| 久久精品少妇人妻视频| 亚洲另类欧美日韩中文字幕| 青青草原精品视频在线| 国产中文字二暮区2021综合| 亚洲一区制服无码中文| 91日本视频在线播放| 欧美日韩一级性生活片| 日本东京热免一区二区| 亚洲精品中文字幕码专区| 亚洲国产成人久久综合区| 久久国产精品一区二区三区| 日韩免费的黄色片网站|