2014-06-30 3 views
3

Laravel의 이벤트 처리기 및 수신기에 대한 질문이 있습니다. 어디서부터 시작해야할지 모르겠습니다.Laravel 이벤트 처리기 및 수신기

정확하게 이벤트와 사용시기를 정확히 알고 싶습니다. 또한 이벤트 및 청취자를 구성하는 가장 좋은 방법은 무엇이며 폴더를 배치 할 위치는 무엇인지 알고 싶습니다.

어떤 도움을 주시면 감사하겠습니다)

답변

7

는 최근 들어 행동에 대한 피드를 구현했습니다 게시물이 만들어지면 새 사용자가 등록됩니다. 모든 액션은 이벤트를 발생시키고 모든 이벤트에 대해 "사용자 XY가 방금 등록되었습니다!"와 같은 것을 저장하는 리스너가 있습니다. 데이터베이스에.

아주 기본 버전 :

// app/controllers/RegistrationController.php 
class RegistrationController { 
    public function register($name) { 
     User::create([ 
      'name' => $name 
     }); 

     Event::fire('user.registered', [$name]); 
    } 
} 

// app/events.php 
Event::listen('user.registered', function($name) { 
    DB::table('feed')->insert(
     [ 
      'action' => 'User ' . $name . ' just registered!' 
      // ... 
     } 
    ); 
}); 

는 이제 events.php에 모든 이벤트를 넣을 수 있으며, events.php 파일을 사용하여 app/start/global.php

require app_path().'/events.php'; 

에 다음 행을 추가합니다. 당신이 이벤트를 많이 가질려고하는 경우에


그러나, 당신은 하나의 파일에 모든 이벤트를 넣으면 안됩니다. Event Subscribers을 참조하십시오.

+1

고마워요! 정확히 내가 필요로했던 것 :) 이것은 나의 컨트롤러를 테스트하는 것이 더 쉬운 방법이다. –

+0

안녕하세요 @Melvin Koopmans, 사용자가 로그인 할 때 이벤트를 시작하고 싶습니다. 인증에 구축 된 laravel 5를 사용하고 있습니다. 어디에서 행사를해야합니까? –

+0

컨트롤러에서 이벤트를 시작할 수 있습니다. 특정 컨트롤러 메소드를 누르면 이벤트 발생을 정의 할 수 있습니다. 그러면 laravel이 자동으로 이벤트를 시작합니다. – vijayrana