Event در معماری نرمافزار پیامی است که اعلام میکند اتفاقی در سیستم رخ داده است، مانند ثبت سفارش یا تکمیل پرداخت. اجزای دیگر میتوانند با گوش دادن به رویداد، واکنش مناسب نشان دهند.
در لاراول، Event و Listener امکان جدا کردن تولیدکننده رویداد از منطق واکنش به آن را فراهم میکنند. نام رویداد بهتر است اتفاق رخداده را بیان کند، نه دستور انجام یک کار را.
بعد از ثبت سفارش میتوان رویداد OrderCreated منتشر کرد تا یک Listener ایمیل ارسال کند. اگر چند سرویس مستقل مصرفکننده باشند، از الگوی Event-Driven نیز استفاده میشود.
نمونه کوتاه
event(new OrderPlaced($order));
نامگذاری رویداد با فرمان فرق دارد
OrderPlaced خبر میدهد اتفاقی رخ داده است، اما SendReceipt یک فرمان برای انجام کار است. این تفاوت در معماری رویدادمحور به کاهش وابستگی تولیدکننده رویداد به مصرفکنندگان کمک میکند.