بخش هشتم - Observers
مشاهدهگرها یا Observer ها به عنوان کلاسهایی شناخته میشوند که برای نظارت بر رخدادهای مدلهای Eloquent طراحی شدهاند.
زمانی که میخواهید منطق خاصی را قبل یا بعد از رخ دادن یک عمل (مانند ایجاد، بهروزرسانی یا حذف یک رکورد) انجام دهید، میتوانید از Observerها استفاده کنید.
این امر منجر به جداسازی بهتر منطق بیزنسی از کنترلرها و مدلها و بهبود قابلیت نگهداری کد میشود.
لاراول اجازه میدهد تا به چندین رخداد پیشفرض مدل گوش دهید که با آنها در بخش قبل آشنا شدیم.
برای ایجاد یک Observer جدید میتوانید از دستور Artisan استفاده کنید:
php artisan make:observer UserObserver --model=User
این دستور یک کلاس به نام UserObserver میسازد و آن را با مدل User مرتبط میکند. پس از ایجاد، شما میتوانید متدهایی مانند created، updated و غیره را در آن تعریف کنید تا بر اساس رخدادها اجرا شوند.
فرض کنید میخواهیم زمانی که یک کاربر جدید ایجاد شد، یک پیام خوشآمدگویی برای او ارسال شود. ابتدا یک Observer برای مدل User ایجاد میکنیم.
در فایل app/Observers/UserObserver.php کدی مانند زیر را اضافه میکنیم:
class UserObserver
{
public function created(User $user)
{
Mail::to($user->email)->send(new \App\Mail\WelcomeMail($user));
}
}
متد created درواقع یک رخداد است که با لیست آنها در بخش قبل آشنا شده ایم، درنتیجه میتوان از هر یک از آنها بسته به نیاز به جای created استفاده کرد.
باید این Observer را در AppServiceProvider یا هر جای دیگری که مناسب است، ثبت کنید. این کار معمولاً در متد boot انجام میشود:
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
User::observe(UserObserver::class);
}
}
اکنون، هر بار که یک شیء جدید از مدل User ایجاد شود، متد created در UserObserver فراخوانی میشود و ایمیل خوشآمدگویی ارسال میشود.
▫️ 🟠
🔎 #laravel #لاراول #فصل_۴
💠 @AmirhDeveloper
.