2014-12-14 10 views
2

Laravel에서 이벤트를 발견했습니다. 사용자가 예를 들어, 자신의 문서에서, 로그의 마지막 로그인 :Laravel에서 이벤트를 실제로 사용하면 어떤 이점이 있습니까?

Event::listen('user.login', function($user) 
{ 
    $user->last_login = new DateTime; 
    $user->save(); 
}); 

하지만, 이벤트없이, 내가 AccountController 다른 기능을 할 수 :

public function logLogin($user){ 
$user->last_login = new DateTime; 
    $user->save(); 
} 

를 어디서나> logLogin을 AccountController- 전화 .

Laravel에서 이벤트를 실제로 사용하면 어떤 이점이 있습니까?

+0

이벤트를 발생시키는 코드는 "* AccountController :: logLogin() 및 기타 5 개의 함수를 호출해야 함을 알 필요가 없습니다."*, "AccountController"가 있는지도 알 필요가 없습니다. – DCoder

+0

이벤트는 콜백 함수로 간주됩니다. 그것은 또 다른 일이 일어날 때 무언가를합니다. 예를 들어 CakePHP를 알고 있다면 컨트롤러와 모델에서 beforeXXXX와 afterXXXX 콜백보다 더 유연합니다. – SaidbakR

답변

3

이벤트는 하나의 이벤트를 시작하고 여러 명의 가입자가있을 수 있기 때문에 유용합니다.

즉, 사용자가 로그인하여 user.login 이벤트가 발생하면 여러 콜백을 수행 할 수 있습니다.

즉, AccountController::logLogin 메서드에 기능을 추가하려면 으로 변경해야합니다.

이벤트를 사용하면 여러 콜백을 쌓을 수 있습니다.

Event::listen('user.login', function($user) 
{ 
    $user->last_login = new DateTime; 
    $user->save(); 
}); 

Event::listen('user.login', function($user) 
{ 
    // Do some other thing 
}); 

편의상 새로운 기능을 추가하기 위해 어떤 방법을 변경하지 않아도된다는 사실에 있습니다.

관련 문제