> PHP 프레임워크 > Laravel > Laravel 이벤트 및 비동기 처리 정보

Laravel 이벤트 및 비동기 처리 정보

藏色散人
풀어 주다: 2020-12-29 09:20:11
앞으로
3251명이 탐색했습니다.

Framework 튜토리얼의 Laravel & Framework Tutorial 섹션의 Laravel 사건 및 비동기 처리에 대해 소개한 내용입니다. 필요한 친구들에게 도움이 되길 바랍니다!

Laravel 이벤트 및 비동기 처리 정보이벤트 생성

php aritsan make:event Test

이벤트와 리스너는 일대다 관리이며 하나의 이벤트는 여러 응답 이벤트에 해당합니다

$data를 정의합니다 code> 속성에는 이벤트가 트리거될 때 전달되는 데이터를 할당합니다.
   public $data;
    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct($data)
    {
        $this->data = $data;


    }
로그인 후 복사

비즈니스를 시작하는 방법은 무엇인가요? $data 属性,赋值触发事件时传递的数据。

   public function test(){
       Test::dispatch('你好事件');
   }
로그인 후 복사

如何在业务中触发?

namespace App\Lisenter;use App\Events\Test;class TestLisenter {
    public function handle(Test $test)
    {
        var_dump($test->data);
        //打印:你好事件
    }}
로그인 후 복사

添加监听者

php artisan make:listener TestLisenter

/**
 * 应用程序的事件监听器映射
 *
 * @var array
 */protected $listen = [
    'App\Events\Test' => [
        'App\Listeners\TestListenter',
    ],];
로그인 후 복사

如何接受  “你好事件?”

这个时候我们要创建, listen 对象来处理业务逻辑

laravel 有提供两种方案:

方案一:

EventServiceProvider 添加$listen 数组信息比如:

/**
 * 确定是否应自动发现事件和侦听器
 *
 * @return bool
 */public function shouldDiscoverEvents(){
    return true;}
로그인 후 복사
方案二:

让系统自动处理,遍历指定目录
需要在EventServiceProvider

/**
 * 获取应该用于发现事件的监听器的目录
 *
 * @return array
 */
  protected function discoverEventsWithin()
    {
        return [
            $this->app->path('Lisenter'),//事件关联的监听器目录APP/Lisenters
            $this->app->path('Lisenter/test'),//事件关联的监听器目录APP/Lisenters/test
        ];
    }
로그인 후 복사

리스너 추가

php artisan make:listener TestLisenter
namespace App\Lisenter;use App\Events\Test;use Illuminate\Contracts\Queue\ShouldQueue;class TestLisenter implements ShouldQueue{
    public function handle(Test $test)
    {
        var_dump($test->data);
        //打印:你好事件
    }}
로그인 후 복사

"Hello 이벤트?"를 수락하는 방법

이제 비즈니스 로직을 처리하기 위한 청취 객체를 생성해야 합니다

laravel에는 제공되는 두 가지 옵션: 🎜
🎜🎜옵션 1:
🎜 EventServiceProvider에 $listen 배열 정보를 추가합니다. 예: 🎜rrreee
🎜🎜옵션 2:
🎜Let 시스템이 자동으로 처리하고 지정된 디렉터리를 탐색합니다
EventServiceProvider에 추가해야 합니다: 🎜rrreeerrreee🎜시스템이 자동으로 Listen을 일치시킵니다🎜🎜이 때 이벤트 프로세스는 완료되었습니다. 성공하지 못했거나 이벤트 큐 지연, 이벤트 참여 여부 판단, 실패 후 처리 등 이벤트 처리에 대해 자세히 알고 싶다면 문서를 참고하세요🎜🎜🎜🎜이벤트 큐 처리🎜🎜있다면 laravel의 대기열에 연결되지 않았습니다. 친구들은 다음을 참조하세요: Laravel Jobs🎜🎜TestListener에서 ShouldQueue 인터페이스만 구현하면 됩니다🎜🎜다음과 같습니다:🎜rrreee

위 내용은 Laravel 이벤트 및 비동기 처리 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:learnku.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
mongodb - laravel mongdb 인증
에서 1970-01-01 08:00:00
0
0
0
Laravel 연관 모델 문제
에서 1970-01-01 08:00:00
0
0
0
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿