2017-02-07 3 views
1

기본적으로 내가하고 싶은 것은 special token auto login등급 이벤트는 동기식으로 실행됩니까?

입니다. 단, 페이지의 하위 집합에 대해서만 사용하십시오. 토큰 로그인으로 댓글을 달았습니다. 신용 카드 정보 변경 및 구매 항목은 토큰 로그인으로 확인되지 않습니다.

그래서 users 테이블에 부울 token_login을 저장하고 싶습니다. 로그인 할 때마다

제가

진정한 토큰 로그인이 수행 될 때

class EventServiceProvider extends ServiceProvider 
{ 

    protected $listen = [ 
     'Illuminate\Auth\Events\Login' => [PostLoginListener::class], 
    ]; 

는 I가 true로 설정 이벤트 핸들러를 사용 false로 설정 token_login.

그래서 나는 이벤트가 전화를받을 것으로 예상 -> token_login = 거짓

다음 코드를 실제 자동 로그인의 경우에는 사실 token_login = 설정, 실행 유지합니다.

이제 이벤트는 실제로 항상 동기식으로 발생하고 항상 다른 코드보다 먼저 발생해야합니다. 그럴까요?

+0

답변으로 볼 수 있을지 모르겠지만 'fireEvent' 메소드로 이벤트가 시작됩니다. https://github.com/laravel/framework/blob/5.2/src/Illuminate/Database/Eloquent/Model.php#L1473 –

답변

5

PostLoginListenerIlluminate\Contracts\Queue\ShouldQueue 인터페이스를 구현하지 않는 한 이벤트는 동 기적으로 처리됩니다.

1

PHP는 동기식 언어이므로 (HHVM 또는 Hack을 사용하지 않는 경우) 이벤트는 항상 동일한 순서로 실행됩니다. 따라서이 이벤트가 다른 이벤트보다 먼저 발생하는지 여부를 테스트 할 수 있습니다.

편집 : Laravel이 이벤트를 발생시키는 방법은 주로 ServiceProvider 배열이 config/app.php 내부에 저장되는 순서를 기반으로합니다.

관련 문제