سؤال

أرغب في أن أتعمق قليلاً في التخزين المؤقت الذكي ، لذلك لدي بعض الأسئلة البسيطة ...

  1. لمعالجة إبطال ذاكرة التخزين المؤقت ، أريد أن أعرف ما هو الدليل الذي يقوم عليه Smarty بتخزين ذاكرة التخزين المؤقت. user_id=123 اريد التخزين في cache/users/123/. أين cache هو ذكي التخزين المؤقت دير. كيف يمكنني أن أخبر Smarty بتخزين ذاكرة التخزين المؤقت المتعلقة بـ user_id=123 في cache/users/123/؟ هل ستخزن ذاكرة التخزين المؤقت لـ Smarty Store في هذا الدليل أيضًا؟

  2. هل هناك أي توصيات حول تنظيف ذاكرة التخزين المؤقت في هذا الدليل؟ أعتقد أن مجرد إزالة الملفات من هذا الدليل يمكن أن يتسبب في بعض الأخطاء إذا كان بعض الزوار يزورون هذه الصفحات حاليًا (يمكن أن يحدث خطأ عندما يرى Smarty أنه تم العثور على ذاكرة التخزين المؤقت للقالب ، ولكن لم يتم العثور على ذاكرة التخزين المؤقت الفرعية لأنه تمت إزالته بالفعل ، علي سبيل المثال).

يتم تقدير أي توصيات ونصائح.

شكرًا لك.

هل كانت مفيدة؟

المحلول

ألقِ نظرة على مستندات Smarty: "مجموعات ذاكرة التخزين المؤقت"القسم. يفعل ذلك بالضبط.

نصائح أخرى

يجب ليس مسح ذاكرة التخزين المؤقت يدويًا. استخدم clear_cache () و clear_compiled_tpl () لذلك. يمكنك مسح جميع ذاكرة التخزين المؤقت وكذلك إجراء عملية تطهير انتقائية معهم.

يمكن استخدام استخدام Smarty Cachedir ، اعتمادًا على المكان الذي تريده (يمكنك التحقق من ذلك مع بعض الاختبارات الخاصة بـ IF)

// Create smarty object
$smarty = new Smarty();

// Change smarty-dir is like this:
if (isset($_GET['userId'])) {
    $smarty->compile_dir = '/path/to/dir/' . $_GET['userId'];
} else {
    $smarty->compile_dir = '/path/to/dir/default';
}

النقطة الثانية أصعب قليلاً ، عليك أن تتفقد من خلال جميع mapps ، وتعيين DIR التجميع الجديد ، ثم قم بتشغيل الأمر التالي:

$smarty->clear_cache();

ولكن كما قلت ، من الممكن طلب الملف أثناء إزالة. :-(


ولكن لا ينصح باستخدام مجلدات ذاكرة التخزين المؤقت المختلفة ، فإن Smarty لا يخدع الإخراج ، فقط ملف PHP المترجم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top