免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

Laravel中Sight組件有什么用

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

目前創(chuàng)新互聯(lián)已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、華安網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

Laravel開發(fā)速度可以算是最快的了。但是,現(xiàn)在如果加上Sight,那么,你的開發(fā)速度會(huì)更加快。
Sight做了什么呢?
Sight是在Server Side實(shí)現(xiàn)了一個(gè)Presenter層。從而讓你把從服務(wù)器中查出的數(shù)據(jù)輕松轉(zhuǎn)換為可展示的數(shù)據(jù)。自從有了Sight,Laravel成了唯一支持Server Side的MVP模式的框架。
為什么要用Sight呢?
一、是加快開發(fā)速度。
二、國(guó)內(nèi)的Phper都了解,大廠是禁止SQL聯(lián)表三個(gè)表以上的。遇到初學(xué)者,會(huì)在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后,請(qǐng)求到相關(guān)數(shù)據(jù)交給Sight,Sight會(huì)為你拼接好數(shù)據(jù)。它的做法是通過關(guān)聯(lián)ID為KEY把數(shù)據(jù)整理好。從而大大提升了程序效率。
三、Sight的使用相當(dāng)簡(jiǎn)單。
比如以下示例,幾乎類似于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)換成了時(shí)間,把created_by從user id轉(zhuǎn)換成了用戶名。
我們看出:created_at所用的是MappingTypeEnum::METHOD_NAME,這個(gè)方法在哪里呢,是在PresenterTrait中。所以,你也可以定義自己的Trait。
created_by則是直接讀取關(guān)聯(lián)數(shù)組中的user_name,因?yàn)橛玫氖荕appingTypeEnum::JOIN_FIELD。
上面代碼看起來有些長(zhǎng),但是,onRelationByObject()可以改用 onRelation()傳參方式,代碼就短了。
同樣addFieldMappingByObject(),改用addFieldMappingList()用數(shù)組傳入,代碼也短了。

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

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

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

Sight——?dú)⑹旨?jí)提升Laravel開發(fā)速度的組件現(xiàn)在開源了!趕緊FORK,趕緊STAR!

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

網(wǎng)站題目:Laravel中Sight組件有什么用
網(wǎng)站鏈接:http://m.newbst.com/article30/ppieso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷外貿(mào)網(wǎng)站建設(shè)企業(yè)網(wǎng)站制作標(biāo)簽優(yōu)化定制開發(fā)自適應(yīng)網(wǎng)站

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)