سلام دوستان
میخواستم یه سرویسی بنویسم که هر موقع یه اکشی داخل برنامه اتفاق افتاد اسم اون اکشن مثلا store یا edit و ای دی یوزر رو برام ذخیره کنه و جوری باشه که داخل تمام کنترلر ها قابل اجرا باشه
اگه امکانش هست راهنماییم کنید
ببین من واسه این روش اومدم یه میدلوویر کلی ساختم
که هر موقع کاربر لاگین بود قبل از نمایش صفحه ریکوست، url و ... رو ازش میگرفتم و توی دیتابیس ذخیره اش می کردم بعد میفرستادم به ویو زمان زیادی هم نمیگیره
راه درستش استفاده از یه middleware هستش و هرکاری خواستی بکنی رو لاگ بگیری،
راه دوم اینه که یک کنترلر یا هلپر بنویسی و بهش پارامتر بدی و هرجا خواستی صداش بزنی تا برات لاگ مورد نیاز رو ثبت کنه
دیتابیس ثبت رو هم خیلی راحت با ستونهای یوزر_ایدی، لاگ، تاریخ و ساعت ذخیره کن
میشه جوری نوشت که دیگه نیازی به new کردن نباشه و هر اکشنی که یوزر انجام داد به طور خودکار اون کلاس فراخوانی بشه و اطلاعات تو دیتا بیس ثبت بشه؟؟
سوالتون خیلی کلیه ولی احتمالا چیزی که دنبالش هستید Observer هست و همون طوری که از اسمش بر میاد کارش این هست که حواسش به یکسری اتفاقات خاص باشه و هر وقت رخداد انجام شد، یکسری دستورات رو اجرا میکنه.
در لاراول این قابلیت برای Model ها به زیباترین شکل پیاده سازی شده و میتونید ازش استفاده کنید:
https://laravel.com/docs/master/eloquent#observers
و در نهایت مثلا اینجور میشه که میتونید تعریف کنید هر وقت یک رکورد از اطلاعات حذف شد، ویرایش شد یا جدید ایجاد شد فلان دستورات هم پشت بندش انجام بشه. بر اساس نیاز خودتون باید این بخش رو توسعه بدید و مواردی که براتون مهم هستند رو ذخیره کنید.
اگر هم دنبال استفاده اش به شکل گسترده تر و خاص تر هستید میتونید از Event ها و Listener ها استفاده کنید و هر جایی که لازم داشتید یک Event رو dispatch بکنید تا Listener های مرتبطش الباقی کارها رو انجام بدن:
https://laravel.com/docs/master/events
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟