Laravel 5.8에서 오리지널 활동의 이야기를 정의해 봤어요.
5762 단어 PHPEventListenerLaravel
입문 こちらの記事は、社内knowledgeからの移行記事になります。
Laravel에서 자체 제작 이벤트 이전의 일련의 절차를 정의합니다.
[공식 참조]
- Laravel 5.7에서 Event-qiita 사용 시도
[출처]
- GitHub
환경
정편
1. 서비스 공급자를 위한 이벤트 및 탐지기 정의
application/app/Providers/EventServiceProvider.phpprotected $listen = [
'App\Events\TaxIncreased' => [
'App\Listeners\TaxIncreasedNotification'
],
];
2. Artisan 명령을 사용하여 이벤트 및 모니터 만들기
# php artisan event:generate
Events and listeners generated successfully!
3. 감청기 정의 이벤트 처리
이번에는 발생한 사건의 대상만 되돌아온다.
application/app/Listeners/TaxIncreasedNotification.phppublic function handle(TaxIncreased $event)
{
return $event;
}
4. 이벤트 정의
application/app/Events/TaxIncreased.phppublic $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']));
}
결과
세율 경감 활동이 폭발했다.
Reference
이 문제에 관하여(Laravel 5.8에서 오리지널 활동의 이야기를 정의해 봤어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/suupoo/items/8575b89488802bfb6f74
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
protected $listen = [
'App\Events\TaxIncreased' => [
'App\Listeners\TaxIncreasedNotification'
],
];
# php artisan event:generate
Events and listeners generated successfully!
public function handle(TaxIncreased $event)
{
return $event;
}
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);
}
public function index()
{
$eatIn = event(new TaxIncreased('タピオカ',1000,false))[0];
$takeOut = event(new TaxIncreased('タピオカ',1000,true ))[0];
return view('home',compact(['eatIn','takeOut']));
}
Reference
이 문제에 관하여(Laravel 5.8에서 오리지널 활동의 이야기를 정의해 봤어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/suupoo/items/8575b89488802bfb6f74텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)