Home  >  Article  >  PHP Framework  >  Let's learn about events and observers in laravel together!

Let's learn about events and observers in laravel together!

藏色散人
藏色散人forward
2021-08-13 14:18:122266browse

The following column laravel tutorial will introduce you to the events and observers in laravel. I hope it will be helpful to friends in need!

1: Events and Listeners

Event is a relatively broad term, and it can represent an action taken. What appears together with the event is the listener, which is used to monitor what you do and to perform subsequent processing on your behavior.
The event system provides a great way to decouple various aspects of the application, because a single event can have multiple listeners that are independent of each other. For example, you might want to send a notification to the user every time an order ships. Instead of coupling the order processing code to the notification code, you can write an event that can be listened to.

Events:
If the Laravel framework wants to create an event, you can create it with the following command:

php artisan make:event 事件名称

The file will be stored in the app/Events directory.

Listener:

Creating a listener can be created using the following command:

php artisan make:listener 监听器名称

Registration:

After the events and listeners are created, they need to be combined. We can register it in the EventServiceProvider service provider. As follows:

    protected $listen = [
        事件名称 => [
            监听器名称,
         .
        ],
    ];

Distribution

event(new TestEvent());

2: Model events

Model events are additional functions added specifically for models . It creates corresponding events and listeners for us. When using model events, we need to abide by the rules given to us by the model:

  • retrieved: Triggered after obtaining the model instance
  • creating: Triggered before inserting into the database
  • created: Triggered after inserting into the database
  • updating: Triggered before updating to the database
  • updated: Triggered after updating to the database
  • saving: Triggered before saving to the database (insert/ Before updating, it will trigger regardless of insert or update)
  • saved: Triggered after saving to the database (after insert/update, it will trigger regardless of insert or update)
  • deleting: Triggered before deleting records from the database
  • deleted: Triggered after deleting records from the database
  • restoring: Triggered before restoring soft-deleted records
  • restored: Triggered after restoring soft-deleted records

Need to be bound at the model

protected $dispatchesEvents = [
        'saving' => \App\Events\TestEvent::class,
//        'updated' => \App\Events\TestEvent::class,
];

3: Observer

Events need to be associated with listeners. When there are more listeners, we need to register them. , this will be more troublesome, then we can consider using observers. If you are listening to multiple events on a model, you can use observers to organize these listeners into a separate class.

Use of observers:

The observer can be created using the following command:

php artisan make:observer

If you want to associate it directly with the model, you can also You can directly add parameters to associate with the model:

php artisan make:observer UserObserver --model=User

Observer registration:
Register in the service provider

User::observe(UserObserver::class);

or register in the model

public static function booted()
{
     self::observe(UserObserver::class);
}

Related recommendations: The latest five Laravel video tutorials

The above is the detailed content of Let's learn about events and observers in laravel together!. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:jianshu.com. If there is any infringement, please contact admin@php.cn delete