برنامه نویسی

Laravel Observer: ابرقدرت های آن در ساختار رویداد

ناظر لاراول چیست؟

از ناظران در لاراول برای گوش دادن به رویدادهای خاص در مدل های فصیح مانند ایجاد ، به روزرسانی و حذف سوابق استفاده می شود. مهمترین مزیت استفاده از آنها امکان تفویض منطق انتقال داده ها به یک کلاس اختصاصی ، نگه داشتن کنترل کننده ها و مدل ها لاغر است.

تصور کنید که هر بار که کاربر ایجاد می شود باید یک عمل را انجام دهید. به جای نوشتن آن منطق به طور مستقیم در کنترلر یا مدل ، می توانید از یک ناظر استفاده کنید تا اطمینان حاصل شود که منطق منزوی است و آزمایش آسان تر است.


چگونه یک ناظر ایجاد کنیم؟

ایجاد یک ناظر در لاراول بسیار ساده است. بیایید نگاهی به یک مثال اساسی از یک ناظر برای a بیندازیم User مدل:

php artisan make:observer UserObserver --model=User
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


ناظر را ثبت کنید

باز کردن App\Providers\EventServiceProvider پرونده را ثبت کنید و ناظر را ثبت کنید:

public function boot()
{
    parent::boot();

    User::observe(UserObserver::class);
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


تعریف روش های رویداد

در Observer می توانید روش هایی را که در رویدادهای خاص اجرا می شود تعریف کنید:

class UserObserver
{
    public function created(User $user)
    {
        // Logic to be executed when a user is created
        // Here you can send an email
    }

    public function updated(User $user)
    {
        // Logic to be executed when a user is updated
        // Here you can send an email
    }
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


اقدامات احتیاطی هنگام استفاده از ناظران

در حالی که ناظران قدرتمند هستند ، اقدامات احتیاطی وجود دارد که باید انجام دهید:

  • از منطق سنگین خودداری کنید: ناظران را با منطق سنگین یا پیچیده اضافه نکنید ، زیرا آنها به طور خودکار پس از عملکرد پایگاه داده اجرا می شوند. این می تواند بر عملکرد برنامه تأثیر بگذارد.

  • از وابستگی های خارجی خودداری کنید: هنگام استفاده از ناظران ، مهم نیست که وابستگی هایی را که ممکن است باعث ایجاد مشکلات اتصال شود ، اضافه نکنید. از تماس با سایر خدمات یا دستکاری داده های خارجی مستقیماً از یک ناظر خودداری کنید.

  • قابلیت آزمایش: اگرچه ناظران به سازماندهی کد کمک می کنند ، نوشتن تست ها ضروری است تا اطمینان حاصل شود که وقایع به درستی انجام می شود.

  • سازگاری داده ها: هنگام تغییر وضعیت یک مدل در یک ناظر ، محتاط باشید ، زیرا این می تواند باعث ایجاد حلقه ها یا ناسازگاری در پایگاه داده شود.

  • از عوارض جانبی ناخواسته خودداری کنید: اطمینان حاصل کنید که منطق موجود در ناظر ، حالت ها را به روش های غیرقابل پیش بینی تغییر نمی دهد ، به خصوص در مورد رویدادهایی مانند به روزرسانی و ذخیره.


ابرقدرت های ناظر لاراول

  • منطق متمرکز: به جای گسترش منطق رویداد در چندین مکان ، ناظران همه چیز را در یک مکان متمرکز می کنند و کد را سازمان یافته نگه می دارند.

  • جدا سازی: با ناظر می توانید مدل ها و کنترلرها را سبک تر و عاری از مسئولیت های اضافی نگه دارید. منطق رویداد در ناظر محصور می شود.

  • آزمایش آسان تر: متمرکز کردن منطق در یک ناظر ، آزمایش را آسان تر می کند و به شما امکان می دهد تست های واحد را به طور خاص برای هر رویداد بنویسید.

  • ادغام با وقایع لاراول: Laravel طیف گسترده ای از وقایع را فراهم می کند که می تواند برای افزودن منطق سفارشی در پاسخ به تغییرات در مدل ها استفاده شود.

  • عمل: ناظر می تواند با ذخیره سازی و مکانیسم های دیگر ترکیب شود تا اطمینان حاصل شود که کاربرد حتی با وقایع پیچیده کارآمد است.


پایان

ناظران در لاراول ابزاری قدرتمند برای ساخت منطق رویداد به روشی تمیز و سازمان یافته هستند. آنها به ایجاد کد قوی ، مقیاس پذیر و قابل حفظ کمک می کنند ، ضمن اینکه اطمینان حاصل می کنند که رفتار مدل های شما به راحتی قابل گسترش است.

با اقدامات احتیاطی مناسب ، مانند جلوگیری از منطق پیچیده و اطمینان از قابلیت آزمایش ، می توانید از این ابزار بیشترین استفاده را کنید تا کد خود را تمیز و کارآمد نگه دارید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا