Laravel Blueprint를 사용한 신속한 애플리케이션 스캐폴딩

8470 단어 webdevlaraveltutorial
안녕,

이 튜토리얼에서는 Laravel Blueprint라는 코드 생성 도구를 활용하여 Laravel 애플리케이션을 빠르게 개발하는 방법을 살펴봅니다.

Laravel Blueprint를 사용하면 사람이 읽을 수 있는 단일 도메인 언어에서 여러 개의 Laravel 구성 요소(모델, 컨트롤러, 이벤트 등)를 만들 수 있습니다.

청사진 기능



간단한 구문으로 애플리케이션 초안 작성



Blueprint는 간단한 YAML 구문을 사용하여 속기를 제공하고 규칙을 활용하여 개발자 경험을 극대화하는 모델 및 컨트롤러를 정의합니다.

장인 명령을 사용하여 코드 생성



Blueprint에는 장인의 명령이 포함되어 있어 Laravel 애플리케이션 내에 있는 새로운 구성 요소와 참조를 쉽고 친숙하게 구축할 수 있습니다.

한 번에 여러 Laravel 구성 요소 출력



Blueprint는 모델과 컨트롤러를 생성할 뿐만 아니라 공장, 마이그레이션, 양식 요청, 이벤트, 작업 및 메일 가능 항목을 생성합니다. 아, 그리고 테스트도요.

시작한다

1단계. 새로운 laravel 애플리케이션 생성




laravel new blue-app
cd blue-app


2단계. Blueprint 패키지 설치




composer require --dev laravel-shift/blueprint


생성된 테스트용 테스트 패키지

composer require --dev jasonmccreary/laravel-test-assertions


Blueprint 파일 무시

echo '/draft.yaml' >> .gitignore
echo '/.blueprint' >> .gitignore


3단계. YAML 파일을 사용한 Scaffold Application



draft.yaml 파일 만들기

touch draft.yaml


다음을 추가하십시오

models:
  Post:
    title: string:400
    content: longtext
    remark: string:100 nullable
    user_id: id foreign    
    published_at: nullable timestamp
    relationships:
      hasMany: Transaction      
      belongsTo: User
  Transaction:
    payment_token: string:40
    total: decimal:8,2
    user_id: id foreign
    post_id: id foreign:posts
    status: enum:pending,successful,failed
    relationships:      
      belongsTo: User, Post

seeders: Post, Comment


controllers:
  Post:
    index:
      query: all:posts
      render: post.index with:posts
    create:
      render: post.create
    store:
      validate: title, content, remark
      save: post
      send: ReviewNotification to:post.author with:post
      dispatch: SyncMedia with:post
      fire: NewPost with:post
      flash: post.title
      redirect: post.index
    show:
      render: post.show with:post
    edit:
      render: post.edit with:post
    update:
      validate: post
      update: post
      flash: post.id
      redirect: post.index
    destroy:
      delete: post
      redirect: post.index
  Transaction: 
    store:
      validate: transaction
      save: transaction
      flash: transaction.id
      redirect: post.index
    show:
      render: transaction.show with:transaction
  Report:
    invokable:
      fire: ReportGenerated
      render: report


생성된 파일
  • Post, Transaction complete with fillable, casts, 날짜 속성 및 관계 메서드에 대한 클래스입니다.
  • A model를 사용하여 게시물 및 트랜잭션 테이블을 생성합니다.
  • Amigration는 가짜 데이터로 지능적으로 설정됩니다.
  • 각 명령문에 대해 생성된 코드와 함께 완전한 인덱스 및 저장 작업이 포함된 PostController에 대한 factory 클래스입니다.
  • controller는 모든 컨트롤러의 작업에 대해 Resource의 경로를 지정합니다.
  • Post 모델 정의를 기반으로 제목 및 콘텐츠를 확인하는 StorePostRequest의 A web.php.
  • 생성자를 통해 설정된 게시 속성이 있는 ReviewNotification 완료에 대한 메일 가능 클래스입니다.
  • 생성자를 통해 설정된 게시 속성이 있는 SyncMedia용 작업 클래스가 완료됩니다.
  • NewPost에 대한 이벤트 클래스가 생성자를 통해 설정된 게시물 속성으로 완료됩니다.
  • PostController@index에 의해 렌더링된 post/index.blade.php의 블레이드 템플릿입니다.
  • PostController 작업에 대한 각각의 배열, 작동 및 어설션 섹션이 포함된 HTTP 테스트입니다.

  • 현재 진행하기 전에 확인하고 검토해야 할 파일이 많이 있습니다. 이 자습서는 여기서 끝납니다. 다음 단계는 선택 사항입니다.

    4단계. 스캐폴드 인증(선택 ​​사항)



    인증 코드 스캐폴딩에 Breeze 사용.

    composer require laravel/breeze --dev
    



    php artisan breeze:install
    



    npm install && npm run dev
    php artisan migrate
    


    애플리케이션 시작



    개발 서버 시작

    php artisan server
    


    http:://localhost:8000의 브라우저에서 액세스

    행복한 코딩!

    좋은 웹페이지 즐겨찾기