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

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://www.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)

綿陽服務器托管
国产精品一区巨乳人妻| 午夜日本大胆裸体艺术| 超薄丝袜美腿一二三区在线播放 | 最新天堂av资源在线观看| 一区二区中文字幕日本韩国| 日本国产一区二区精品| 国产成年人在线免费观看| 女同一区二区三区在线| 久久亚洲第一视频网站| 少妇人妻精品一区二区三| 日本人妻成人免费大片| 亚洲邻家人妻一区二区| 日韩有码一区在线观看| 国产熟女系列一区二区三区| 男女做爰高清无遮挡免费| 日韩精品毛片在线看| 中文字幕午夜av福利| 日本不卡不二三区在线看| 人妻有码av中文字幕久久| 国产精品国产三级国产专播精品| 久久综激情丁香开心婷婷| 丰满人妻侵犯中文字幕| av手机天堂网免费观看| 午夜神马福利激情视频| 亚洲欧美日韩性生活视频| 日本91免费在线观看| 亚洲视频精品一区二区三区| 日本精品1区国产精品| 免费高清视频一区二区在线观看| 日本人妻中文字幕在线一区| 少妇高潮叫床免费网站在线观看| 免费观看国产性生活片| 久久亚洲一区二区麻豆偷| 国产精品视频在线播放| 国产精致成人免费视频| 国产精品一区二区综合亚洲| 日本精品av免费观看| 日本精品在线小视频| 四虎精品免费在线视频| 国产黄片a三级久久久久久| 日韩成人激情在线观看|