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:
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!