تكرار السؤال: …
الإجابة المختصرة
تسمح بربط عدة مفاتيح كاش مختلفة بوسوم موحدة (Tags) لإبطالها وتفريغها دفعة واحدة بـ flush()؛ وتدعمها مشغلات Redis و Memcached حصراً.
الشرح
إبطال الكاش هو أحد أصعب معضلات هندسة البرمجيات. إذا كان لديك كاش لكل مقال وكاش لقائمة المقالات، فإن تعديل مقال واحد يتطلب مسح مفتاحه ومفتاح القائمة. باستخدام الوسوم: Cache::tags(['posts'])->put(...)، يمكنك فور تعديل أي مقال استدعاء Cache::tags(['posts'])->flush() لمسح كل البيانات المرتبطة بهذا الوسم بلمح البصر دون المساس بكاش المستخدمين أو الإعدادات.
مثال بالكود
Cache::tags(['posts', 'authors'])->put('post.1', $post, 3600);
// مسح كل ما يرتبط بوسم posts
Cache::tags(['posts'])->flush();أخطاء شائعة
- محاولة استخدام Cache::tags() مع مشغلي file أو database حيث يرمي Laravel استثناء BadMethodCallException.