شرح صفوف ومحتوى الفقرة
لأتمتة تنظيف السجلات المؤرشفة القديمة أو منتهية الصلاحية، يوفر Laravel سمتي Prunable و MassPrunable لتعريف استعلام التنظيف داخل النموذج نفسه. تشغيل أمر Artisan المخصص للتقليم يمسح السجلات المطابقة على دفعات متتالية بحيث تبقى جداول الإنتاج خفيفة دون تجميد الصفوف.
- سمة التقليم التلقائي (Prunable Trait): تعرف دالة prunable التي تعيد استعلاماً يحدد السجلات القديمة الواجب إزالتها.
- خطاف التنظيف المسبق (pruning Hook): دالة اختيارية داخل النموذج لحذف الملفات المرفقة من التخزين قبل إزالة السجل.
- التقليم الجماعي السريع (MassPrunable): ينفذ استعلام حذف SQL جماعياً لكل دفعة لتحقيق سرعة عالية عند عدم الحاجة للأحداث.
PHP
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Prunable;
public function prunable(): Builder
{
return static::onlyTrashed()
->where('deleted_at', '<=', now()->subMonth());
}