Modelli Laravel: eseguire azioni automatiche quando i dati vengono creati, aggiornati o eliminati

Inviare una notifica all'amministratore quando un nuovo utente si registra.
Registrare ogni modifica apportata a un prodotto
Eliminare i vecchi file dall'archivio quando viene rimosso un record
Invece di ripetere queste attività nel controller o nel livello di servizio, i modelli laravel di Eloquent offrono una soluzione più pulita e di più facile gestione.
Scopriamo insieme cosa sono gli eventi modello, come utilizzarli e perché vale la pena implementarli nei progetti Laravel.
Cosa sono gli eventi modello eloquenti
In Laravel, gli Eloquent Models consentono di agganciarsi a determinati eventi che vengono attivati automaticamente durante l'interazione con il database.
Ecco alcuni degli eventi più comuni:
- created→ dopo che un modello è stato creato
- updated→ dopo che un modello è stato aggiornato
- deleted→ dopo che un modello è stato eliminato
- saving→ prima che un modello venga creato o aggiornato
- retrieved→ quando un modello viene recuperato dal database
Grazie a questi eventi è possibile automatizzare attività come l'invio di e-mail, la registrazione di attività o la pulizia di file, il tutto senza appesantire il codice del controller.
Perché utilizzare gli eventi modello?
Ecco perché dovresti prendere in considerazione l'utilizzo di eventi modello nella tua applicazione Laravel:
- Struttura del codice più pulita
Mantiene il controller libero da logica non correlata.
- DRY (Non ripeterti):
non ripetere più la stessa logica in più punti.
- Scalabile e manutenibile.
Più facile da gestire man mano che la tua applicazione cresce.
- Ottimo per l'automazione.
Perfetto per attività in background come notifiche, registrazione o pulizia.
Come utilizzare gli eventi modello
1. Direttamente nel modello ( booted()metodo)
Esempio: si desidera registrare ogni volta che un elemento Postviene creato, aggiornato o eliminato.
// app/Models/Post.php
class Post extends Model
{
protected static function booted()
{
static::created(function ($post) {
Log::info('Post created: ID ' . $post->id);
});
static::updated(function ($post) {
Log::info('Post updated: ID ' . $post->id);
});
static::deleted(function ($post) {
Log::info('Post deleted: ID ' . $post->id);
});
}
}
Semplice ed efficace.
2. Utilizzo di un observer (per una logica più pulita e scalabile)
a. Creare un observer
php artisan make:observer PostObserver --model=Post
b. Aggiungere metodi di evento
// app/Observers/PostObserver.php
class PostObserver
{
public function created(Post $post)
{
Log::info('Observer: Post created! ID ' . $post->id);
}
public function updated(Post $post)
{
Log::info('Observer: Post updated. ID ' . $post->id);
}
public function deleted(Post $post)
{
Log::info('Observer: Post deleted. ID ' . $post->id);
}
}
c. Registrare l'observer
// app/Providers/AppServiceProvider.php
public function boot()
{
Post::observe(PostObserver::class);
}
Ercole Palmeri
#PHPTutorial #softwaredesign #SoftwareDeveloper #tutorialdilaravelPHP https://bloginnovazione.it/modelli-laravel/54379/
Commenti
Posta un commento