Skip to main content

Command Palette

Search for a command to run...

Laravel Observer patterni(shablon) ishlashtishga misol

Updated
1 min read
Laravel Observer patterni(shablon) ishlashtishga misol

Laravelda Observer pattern modelda bo'layotgan hodisa(event)larni eshitish va bu hodisalarga mos ravishda ma'lumot ishlarni bajarish mumkin.

Observer patterndan foydalanish uchun quyidagi ishlarni qilishingiz lozim:

  1. Hodisa(event)larni kuzatmoqchi bo'lgan modelingiz uchun observer classni yarating. Bu class Illuminate\Support\Observer classidan vorislik(extend) oladi va class ichida modeling tinglamoqchi bo'lgan hodisalari uchun kerakli methodlarni yozib chiqing. Masalan MB ga yangi ma'lumot kiritganingizda modelda created hodisani tinglash orqali kerakli kodni ishga tuhsirishingiz mumkin. Aytaylik yangi foydalanuvchi ro'yxatdan o'tgan vaqtda uning pochtasiga verifikatsiyadan o'tish xabarini jo'natmoqchi bo'lsangiz buni quyidagicha qilishingi mumkin:
namespace App\Observers;

use App\Models\User;

class UserObserver
{
    public function created(User $user)
    {
        //Foydalanuvchi yaratilgandan so'ng foydalanuvchi pochtasiga xabarini jo'natishingiz mumkn
    }
}
  1. Observe classimizni AppServiceProvider da boot metodi ichida ro'yxatdan o'tkazamiz. Model bilan observe classimizni bog'lash uchun observe metodidan foyalanishimiz kerak bo'ladi.
use App\Models\User;
use App\Observers\UserObserver;

public function boot()
{
    User::observe(UserObserver::class);
}
  1. Shundan so'ng UserObserver classimiz User modelidagi eventlarni tinglab mos ravishda kodlarimizni ishga tushira oladi.Quyida yangi ro'yxatdan o'tgan foydalanuvchga verifikatsiya uchun xabar jo'natishga misol keltirilgan:
public function created(User $user)
{
    Mail::to($user->email)->send(new VerificationEmail($user));
}

Yuqorida qisqacha misol asosida Observe qanday ishlashini ko'rib chiqdik. Loyihalaringizda qo'yilgan vazifaga qarab turli vaziyatlarda ishlatishingiz mumkin holatlarda bilimingizni yanada boyitishingiz uchun laravel dokumentatsiyasidan o'rganishingiz mumkin.

More from this blog

Rashidov Nuriddin

34 posts