상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
디저트를 선물할 때 좋은 아이디어는?
디저트와 관련된 전통적인 축제는?
디저트에 대한 문화적 차이는 무엇인가요?
전쟁 중에 발생한 주요 사회적 변화는 무엇이었나요?
독립 전쟁에서의 주요 전투 중 하나인 트렌턴 전투의 중요성은 무엇인가요?
헌법 제3조의 '사법권'의 범위는 어떻게 정의되나요?
제2차 세계 대전에서의 전투에서의 기갑 부대의 역할은 무엇이었나요?
베트남 전쟁에서의 '호치민 트레일'은 어떤 역할을 했나요?
바이오메트릭스와 전통적인 인증 방식의 차이점은 무엇인가요?
바이오메트릭스 기술의 국제적 규제는 어떻게 이루어지고 있나요?
바이오메트릭스 기술이 사용되는 여행 산업의 예는 무엇인가요?
15세기 동안의 주요 음악가는 누구였나요?
Previous
Next
수정하기 - 라라벨에서 이벤트와 리스너(Event & Listener)를 사용하는 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
라라벨에서 이벤트(Event)와 리스너(Listener)는 애플리케이션의 다양한 부분에서 발생하는 특정 행동이나 상태 변화를 처리하는 데 매우 유용한 기능입니다. 이 기능을 사용하면 코드의 결합도를 낮추고, 유지보수를 쉽게 하며, 특정 작업을 비동기적으로 처리할 수 있습니다. 아래에서는 라라벨에서 이벤트와 리스너를 사용하는 방법에 대해 단계별로 설명하겠습니다. 1. 이벤트 생성이벤트를 생성하려면 Artisan CLI를 사용하여 `make:event` 명령어를 실행합니다. 예를 들어, `UserRegistered`라는 이벤트를 생성하려면 다음과 같이 입력합니다.```bashphp artisan make:event UserRegistered```이 명령어를 실행하면 `app/Events` 디렉토리에 `UserRegistered.php` <a href='https://sangseek.com/sangseeks/파일/ko'>파일</a>이 생성됩니다. 이 파일은 이벤트의 속성과 메서드를 정의하는 곳입니다.```phpnamespace App\Events;use Illuminate\Foundation\Events\Dispatchable;use Illuminate\Queue\SerializesModels;class UserRegistered{ use Dispatchable, SerializesModels; public $user; public function __construct($user) { $this->user = $user; }}``` 2. 리스너 생성이벤트가 발생했을 때 실행될 리스너를 생성하려면 `make:listener` 명령어를 사용합니다. 예를 들어, `SendWelcomeEmail`이라는 리스너를 생성하려면 다음과 같이 입력합니다.```bashphp artisan make:listener SendWelcomeEmail```이 명령어를 실행하면 `app/Listeners` 디렉토리에 `SendWelcomeEmail.php` 파일이 생성됩니다. 이 파일에서 리스너의 로직을 정의합니다.```phpnamespace App\Listeners;use App\Events\UserRegistered;class SendWelcomeEmail{ public function handle(UserRegistered $event) { // $event->user를 사용하여 환영 이메일을 전송하는 로직을 작성합니다. }}``` 3. 이벤트와 리스너 등록이벤트와 리스너를 연결하려면 `EventServiceProvider`를 수정해야 합니다. `app/Providers/EventServiceProvider.php` 파일을 열고, `$listen` 배열에 이벤트와 리스너를 등록합니다.```phpprotected $listen = [ UserRegistered::class => [ SendWelcomeEmail::class, ],];``` 4. 이벤트 디스패치이벤트를 발생시키려면 `event()` 헬퍼 함수를 사용하거나, `dispatch()` 메서드를 호출합니다. 예를 들어, 사용자가 등록되었을 때 이벤트를 디스패치하려면 다음과 같이 할 수 있습니다.```phpuse App\Events\UserRegistered;// 사용자 등록 로직$user = User::create($request->all());// 이벤트 디스패치event(new UserRegistered($user));```또는```phpUserRegistered::dispatch($user);``` 5. 테스트이벤트와 리스너가 제대로 작동하는지 확인하기 위해 테스트를 작성할 수 있습니다. 라라벨에서는 이벤트와 리스너를 쉽게 테스트할 수 있는 기능을 제공합니다.```phppublic function test_user_registered_event_dispatches_listener(){ Event::fake(); // 사용자 등록 로직 $user = User::factory()->create(); // 이벤트 디스패치 event(new UserRegistered($user)); // 리스너가 호출되었는지 확인 Event::assertDispatched(UserRegistered::class);}``` 결론라라벨의 이벤트와 리스너는 애플리케이션의 구조를 깔끔하게 유지하고, 특정 작업을 분리하여 관리할 수 있는 강력한 도구입니다. 위의 단계들을 통해 이벤트와 리스너를 설정하고 활용하는 방법을 익힐 수 있습니다. 이를 통해 코드의 재사용성을 높이고, 유지보수성을 향상시킬 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기