Laravel 5.8에서 오리지널 활동의 이야기를 정의해 봤어요.

입문

こちらの記事は、社内knowledgeからの移行記事になります。Laravel에서 자체 제작 이벤트 이전의 일련의 절차를 정의합니다.
[공식 참조]
  • 공식(영어)
  • ReaDouble
  • [참고 보도]
    - Laravel 5.7에서 Event-qiita 사용 시도
    [출처]
    - GitHub

    환경

  • Laravel 5.8.23
  • 정편


    1. 서비스 공급자를 위한 이벤트 및 탐지기 정의


    application/app/Providers/EventServiceProvider.php
    protected $listen = [
        'App\Events\TaxIncreased' => [
            'App\Listeners\TaxIncreasedNotification'
        ],
    ];
    

    2. Artisan 명령을 사용하여 이벤트 및 모니터 만들기

    # php artisan event:generate
    Events and listeners generated successfully!
    

    3. 감청기 정의 이벤트 처리


    이번에는 발생한 사건의 대상만 되돌아온다.
    application/app/Listeners/TaxIncreasedNotification.php
    public function handle(TaxIncreased $event)
    {
        return $event;
    }
    
    

    4. 이벤트 정의


    application/app/Events/TaxIncreased.php
    public $name;
    public $price;
    public $taxRate;
    public $taxIncludingPrice;
    
    /**
     * TaxIncreased constructor.
     *
     * @param string $name
     * @param int $price
     * @param bool $isReduceTax
     */
    public function __construct(string $name, int $price, bool $isReduceTax){
        $this->name  = $name;
        $this->price = $price;
        $this->taxRate = ($isReduceTax) ? 0.08 : 0.10;
        // 税込み価格計算
        $this->taxIncludingPrice = (int) $this->price * ( 1 + $this->taxRate);
    }
    

    5. 이벤트 호출


    이번에는 컨트롤러의 동작에서 이벤트를 호출합니다.
    application/app/Http/Controllers/HomeController.php
     public function index()
     {
         $eatIn   = event(new TaxIncreased('タピオカ',1000,false))[0];
         $takeOut = event(new TaxIncreased('タピオカ',1000,true ))[0];
    
         return view('home',compact(['eatIn','takeOut']));
     }
    

    결과


    세율 경감 활동이 폭발했다.

    좋은 웹페이지 즐겨찾기