در دنیای توسعه نرمافزار، پیگیری تغییرات و فعالیتهای انجام شده در برنامهها، امری حیاتی است. این امر به ویژه در برنامههای مبتنی بر لاراول بسیار مهم است. یکی از پکیجهای قدرتمندی که برای این منظور طراحی شده است، پکیج Spatie/Laravel-Activitylog میباشد. در این مقاله قصد داریم تا به معرفی و بررسی این پکیج بپردازیم.
نصب و راهاندازی
برای نصب این پکیج، میتوانید از Composer استفاده کنید. کافیست دستور زیر را در ترمینال خود وارد کنید:
composer require spatie/laravel-activitylogپس از نصب، باید فایل تنظیمات را منتشر کنید. برای این کار دستور زیر را اجرا کنید:
php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="activitylog-config"استفاده اولیه
برای ثبت لاگ فعالیتها، ابتدا باید مدلهای خود را برای استفاده از این پکیج آماده کنید. به عنوان مثال، فرض کنید میخواهیم فعالیتهای مربوط به مدل User را ثبت کنیم. ابتدا باید مدل User را به گونهای تنظیم کنیم که قابلیت ثبت لاگ فعالیتها را داشته باشد.
در فایل مدل User، باید از تریت LogsActivity استفاده کنیم:
use Spatie\Activitylog\Traits\LogsActivity;
class User extends Authenticatable
{
use LogsActivity;
// سایر کدهای مدل
// تنظیمات مربوط به لاگ فعالیتها
protected static $logAttributes = ['name', 'email'];
protected static $logName = 'user';
}در کد بالا، با استفاده از تریت LogsActivity مشخص کردهایم که تغییرات مربوط به فیلدهای name و email در مدل User ثبت شوند. همچنین، نام لاگ را نیز user قرار دادهایم.
سفارشیسازی لاگها
یکی از قابلیتهای قدرتمند این پکیج، امکان سفارشیسازی پیامهای لاگ است. برای این کار میتوانیم متد getDescriptionForEvent را در مدل خود بازنویسی کنیم:
public function getDescriptionForEvent(string $eventName): string
{
return "مدل کاربر با رویداد {$eventName} ثبت شد";
}مشاهده لاگها
برای مشاهده لاگهای ثبت شده، میتوانید از مدل Activity استفاده کنید. به عنوان مثال، برای دریافت تمامی فعالیتهای ثبت شده برای یک کاربر خاص، میتوانید کد زیر را بنویسید:
use Spatie\Activitylog\Models\Activity;
$userActivities = Activity::where('log_name', 'user')
->where('causer_id', $user->id)
->get();نتیجهگیری
پکیج Spatie/Laravel-Activitylog ابزاری قدرتمند و انعطافپذیر برای ثبت و مدیریت لاگ فعالیتها در برنامههای لاراولی است. با استفاده از این پکیج، میتوانید به سادگی تغییرات و فعالیتهای مختلف کاربران و مدلهای خود را پیگیری کنید و از آنها گزارش تهیه کنید.
استفاده از این پکیج نه تنها به بهبود نگهداری و پشتیبانی از نرمافزار کمک میکند، بلکه امکان شفافیت و پیگیری دقیقتری از تغییرات انجام شده در سیستم را فراهم میسازد. اگر هنوز از این پکیج استفاده نکردهاید، پیشنهاد میکنیم حتماً آن را امتحان کنید و از مزایای آن بهرهمند شوید.

ممنون از آموزش شما.