>  기사  >  PHP 프레임워크  >  시력! Laravel 개발 속도를 높이는 킬러 구성 요소가 이제 오픈 소스입니다!

시력! Laravel 개발 속도를 높이는 킬러 구성 요소가 이제 오픈 소스입니다!

藏色散人
藏色散人앞으로
2020-10-13 10:23:012102검색

튜토리얼 칼럼에서 소개한 내용입니다! , 도움이 필요한 친구들에게 도움이 되길 바랍니다!

오늘 저는 Laravel을 위한 특별한 컴포넌트를 추천합니다: Sight

Laravel은 개발 속도가 가장 빠른 것으로 간주될 수 있습니다. 하지만 지금 Sight를 추가하면 개발 속도가 더욱 빨라집니다. 시력! Laravel 개발 속도를 높이는 킬러 구성 요소가 이제 오픈 소스입니다!Sight는 무엇을 했나요?

Sight는 서버 측에 Presenter 레이어를 구현했습니다. 이를 통해 서버에서 검색된 데이터를 표시 가능한 데이터로 쉽게 변환할 수 있습니다. Sight가 도입된 이후 Laravel은 서버측 MVP 모델을 지원하는 유일한 프레임워크가 되었습니다.

Sight를 사용하는 이유
첫째, 개발 속도를 높여줍니다.
2. 국내 Phper들은 대형 제조업체들이 3개 이상의 테이블에 대한 SQL 조인을 금지한다는 것을 알고 있습니다. 초보자의 경우 FOR 루프에서 데이터베이스를 쿼리합니다. 차단하셨다면 해당 아이디를 빼냈을 가능성이 있습니다. 결과를 알아낸 다음 FOR 루프 내에 FOR 루프를 중첩하여 관련된 관련 데이터를 확인합니다.
Sight는 아주 좋은 Pluck 기능을 제공합니다. ID를 찾은 후 관련 데이터를 요청하고 Sight에 전달하면 Sight가 데이터를 연결해 줍니다. 이것이 하는 일은 ID를 KEY와 연결하여 데이터를 구성하는 것입니다. 이는 프로그램 효율성을 크게 향상시킵니다.
3. 시력의 사용은 매우 간단합니다.
예를 들어 다음 예는 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);
   }
}

위의 예에서 코드는 create_at를 int에서 시간으로 변환하고,created_by를 사용자 ID에서 사용자 이름으로 변환합니다.
created_at은 MappingTypeEnum::METHOD_NAME을 사용합니다. 이 메서드는 PresenterTrait에 있습니다. 따라서 자신만의 특성을 정의할 수도 있습니다.
created_by는 MappingTypeEnum::JOIN_FIELD가 사용되므로 연관 배열의 user_name을 직접 읽습니다.

위 코드가 좀 길어 보이는데 onRelationByObject()를 onRelation() 매개변수 전달 방식으로 변경하면 코드가 짧아집니다.

addFieldMappingByObject()와 유사하며 대신 addFieldMappingList()를 사용하여 배열을 전달하며 코드가 더 짧습니다.

Sight는 이 기능 그 이상입니다. MySQL에서 검색한 데이터뿐만 아니라 ElasticSearch에서 검색한 데이터도 지원합니다.
순수한 배열 연산이기는 하지만 innerJoin과 externalJoin도 있고, hasOne, hasMany도 있습니다...
물론 더 많은 함수가 있으니 설명서를 주의 깊게 읽어야 합니다.

Sight는 데이터를 찾은 후 표시할 수 있는 데이터로 변환하는 문제를 해결하려고 시도하며 실제로 코딩을 더욱 행복하게 만들어줍니다.

Github 주소: https://github.com/ BardoQi/Sight

Sight - Laravel 개발 속도를 높이는 킬러 구성 요소가 이제 오픈 소스입니다! 서둘러 FORK, 서둘러 STAR!

위 내용은 시력! Laravel 개발 속도를 높이는 킬러 구성 요소가 이제 오픈 소스입니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제