راهنمای services های اختصاصی
سرویس لاگ - ActivityLog
در نمونه زیر یک لاگ با استفاده از تمام متد های ممکن ایجاد شده است:
$log = ActivityLog::by(auth()->user())
->on(User::find(1))
->withEvent('viewed')
->withGroup(ActivityLogGroup::ACTION->value)
->withDescription('Viewed permissions list')
->withProperties(['a' => 'b'])
->log();
تمامی ورودی ها و متد ها اختیاری هستند و برای ایجاد لاگ ست کردن یکی از آن ها کافی است.
متد by به معنای انجام دهنده عملیات است و می تواند null باشد، یا یک orm row object دریافت کند مانند کد زیر:
// this user
auth()->user()
// select user
User::find(1)
یا یک کلاس دریافت کند مانند:
// general Model
User::class
// controller
RoleAndPermissionController::class
متد on به معنای آن چیزی که عملیات روی آن انجام شده است، و رفتار و ورودی های مشابه با by دارد.
متد withEvent مشخص کننده عملیاتی است که انجام شده، و هر مقداری دریافت میکند اما بهتر است مقادیر کم و با معنا انتخاب شود.
برای مثال:
- viewed
- created - updated - deleted
متد withGroup مشخص کننده گروه منطقی لاگ ها است که از Enum در مسیر app/Enums/ActivityLogGroup.php پیروی میکند و باید از همین مجموعه یک عضو انتخاب شود.
متد withDescription مشخص کننده توضیحات اختیاری برای لاگ در حال ایجاد است و از نوع text است.
متد withProperties یک آرایه یا آبجکت دریافت میکند و می توان هرگونه دیتا اضافی مانند دیتا تغییر کرده و ... را ذخیره کرد.
در آخر با صدا زدن متد log() لاگ مدنظر ایجاد و شئ آن برگشت داده میشود.