لقد قمت بتقديم تثبيت الكمثرى من قبل. واليوم سأقدم إحدى حزم الكمثرى العديدة المعروفة. إذا كان هناك أي شيء غير واضح، يرجى البحث في "البرنامج التعليمي لـ PEAR" على الموقع للحصول على البرنامج التعليمي السابق!
ما سنقدمه اليوم هو حزمة PEAR's Cache_Lite التي تتسع عيون مطوري الويب عندما يتحدثون عن التسريع، تمامًا كما تتسع عيون الرجال عندما يرون جمالًا مذهلاً، لذلك أول شيء أريد تقديمه هنا هو حزمة PEAR's Cache_lite ، يمكنك استخدام هذه الحزمة لتخزين أي جزء من صفحة الويب مؤقتًا وفقًا لاحتياجاتك، وبالتالي تحسين إنشاء الصفحة وسرعة التحميل بشكل كبير!
أولاً، انتقل إلى Pear's List Packages لتنزيل حزمة تثبيت Cache_Lite. عند كتابة هذا البرنامج التعليمي، الإصدار الثابت هو 1.7.2، لذلك نقوم بتنزيل هذا الإصدار وفك ضغطه بعد التنزيل، ثم نضع الملف في الدليل الجذر لـ PEAR ( سيتم عرض كيفية تنظيم دليل الملفات لاحقًا)، ثم ننتقل إلى الفصل المقابل من الدليل لمعرفة كيفية استخدامه. يمكنك إلقاء نظرة على المقدمة حول الحزم أولاً، ولا يوجد مداعبة هنا وسننتقل مباشرة إلى الموضوع. وفيما يلي مثال على Cache_Lite::get(). لنبدأ بهذا المثال لقد أضفت التعليقات الصينية إلى المثال.
require_once "Cache/Lite.php";// هذا هو العنوان المتعلق بـ PEAR. بعد العثور على ملف Lite.php في الحزمة التي قمت بتنزيلها للتو، يجب أن تعرف كيفية نشر هذا المجلد!
خيارات $ = صفيف (
'cacheDir'=>'/tmp/',// هذا هو مسار ذاكرة التخزين المؤقت، ومن الأفضل استخدام مسار مطلق، والذي سيتم شرحه في مثالنا
'lifeTime'=>7200, // وقت انتهاء صلاحية ذاكرة التخزين المؤقت بالثواني
'pearErrorMode'=>CACHE_LITE_ERROR_DIE//وضع الإبلاغ عن الأخطاء
);
$cache=newCache_Lite($options);// أنشئ ذاكرة تخزين مؤقت بعد تعيين المعلمات
if($data=$cache->get('id_of_the_page')){// في حالة وجود ذاكرة التخزين المؤقت ذات المعرف = id_of_the_page، قم بتكرار البيانات المخزنة مؤقتًا مباشرة
// ضرب ذاكرة التخزين المؤقت!
// المحتوى موجود في $data
// (...)
}else{// إذا كانت ذاكرة التخزين المؤقت غير موجودة، فقم بإنشاء ذاكرة تخزين مؤقت
// لم يتم العثور على ذاكرة تخزين مؤقت صالحة (عليك إنشاء الصفحة وحفظها)
// (...)
}
بعد قراءة المثال أعلاه، هل تجده بسيطًا جدًا؟ في الواقع، مفتاح التخزين المؤقت ليس كيفية إنشاء ذاكرة التخزين المؤقت وحذفها، ولكن كيفية موازنة العلاقة بين ذاكرة التخزين المؤقت الثابتة والديناميكية، وكيفية إعادة بناء ذاكرة التخزين المؤقت في الوقت المناسب. اسمحوا لي أن أبدأ بمثال حتى يدرك الجميع فوائد التخزين المؤقت! ، يرجى إنشاء ذاكرة تخزين مؤقت للملفات ضمن المعلم (الدليل الجذر المطابق للمثال الموجود في البرنامج التعليمي الخاص بنا). بالنسبة لأنظمة التشغيل *nix، يرجى تعيين الخاصية على 0777، ثم إنشاء ذاكرة تخزين مؤقت.php ضمن مجلد المعلم، وإدخال الكود التالي
<? PHP
require_once"config.php";
require_once"Cache/Lite.php";
// الكود التالي مخصص لحساب وقت تنفيذ الصفحة وليس له علاقة بذاكرة التخزين المؤقت.
functionget_microtime()
{
list($usec,$sec)=explode(' ',microtime());
return((float)$usec+(float)$sec);
}
$s= get_microtime();
// فيما يلي إعدادات ذاكرة التخزين المؤقت
خيارات $ = صفيف (
'cacheDir'=> WEB_DIR."/cache/"،
// برجاء الذهاب إلى المعلم (الدليل الجذري المطابق للأمثلة الموجودة في برنامجنا التعليمي)
// إنشاء ذاكرة تخزين مؤقت للملف،
//*نظام التشغيل nix، يرجى ضبط السمة على 0777
'lifeTime'=>10,//10 ثانية وقت انتهاء الصلاحية
'pearErrorMode'=>CACHE_LITE_ERROR_DIE
);
$cache=newCache_Lite($options);
$cache_id='cache'; يجب أن يكون المعرف فريدًا
// وإلا فسوف يتعارض مع ذاكرة التخزين المؤقت للأشخاص الآخرين.
إذا($data=$cache->get($cache_id)){
// البيانات هي نتيجة الحصول على البيانات، إذا كانت ذاكرة التخزين المؤقت موجودة ولم تنته صلاحيتها،
// احصل على البيانات مباشرة
صدى $ البيانات؛
}آخر{
// وإلا فإننا نقوم بإنشاء ذاكرة تخزين مؤقت
// أدناه نستخدم الحلقات عمدا لاستهلاك الوقت
بينما($i<10000000)
$i++;
$data='وقت إنشاء ذاكرة التخزين المؤقت:'.date("Ymd H:i:s");
$data.="<p>وقت التنفيذ بدون ذاكرة التخزين المؤقت هو: ".(get_microtime()-$s)."thanks";
صدى $ البيانات؛
$cache->save($data);
}
echo"<p>تستغرق الصفحة الحالية: ".(get_microtime()-$s)." ثواني</p>";
?>
قم بتشغيل http://127.0.0.1/tutor/cache.php في المتصفح، ثم تحقق مما إذا تم إنشاء ملف في دليل ذاكرة التخزين المؤقت، يبدو الأمر مُرضيًا للغاية، أليس كذلك؟ !
وجدنا على صفحة الويب أن وقت التشغيل الأول استغرق حوالي ثانية واحدة، وبعد إنشاء ذاكرة التخزين المؤقت، كان الوقت 1/1000 فقط من الوقت الأصلي، ولست بحاجة إلى وصف هذه الكفاءة بعد الآن! ! في الواقع، العملية العامة للمثال أعلاه هي: 1. إنشاء معلمات ذاكرة التخزين المؤقت، بما في ذلك معرف ذاكرة التخزين المؤقت؛ 2. التحقق من وجود ذاكرة التخزين المؤقت بناءً على المعلمات والمعرف، إذا كان موجودًا، فسيتم الحصول على بيانات ذاكرة التخزين المؤقت في بيانات $ متغير، ثم يتم تكراره، وإلا قم بإعادة إنشاء ذاكرة التخزين المؤقت، واحفظ نتائج الصفحة في متغير، ثم اكتب بيانات المتغير إلى ذاكرة التخزين المؤقت. ومع ذلك، هذه الطريقة غير مريحة للغاية، لأنه يجب علينا كتابة جميع المخرجات في متغير، وهو في الواقع أكثر إزعاجا، فهو يتطلب الكثير من اتصالات السلسلة ومن الصعب الحفاظ على الكود. بالطبع، يوصى باستخدام ذاكرة تخزين مؤقت بسيطة. خذ هذا النهج. لكن لا تقلق، PEAR القوي ليس متخلفًا عقليًا، لذا فهو يوفر أيضًا طريقة أخرى، وهي في الواقع الحصول على المخزن المؤقت وإخراج المتغيرات، دعنا نلقي نظرة على هذا المثال البسيط، الفصل اليدوي المقابل هنا .
<?php
require_once"config.php";
require_once"Cache/Lite/Output.php";
// لاحظ أن الملفات المطلوبة هنا مختلفة.
خيارات $ = صفيف (
'cacheDir'=> WEB_DIR."/cache/"،
'lifeTime'=>10,//10 ثانية وقت انتهاء الصلاحية
'pearErrorMode'=>CACHE_LITE_ERROR_DIE
);
$cache=newCache_Lite_Output($options);
$cache_id='obcache';
إذا(!($cache->start($cache_id))){
// إذا لم تكن موجودة، فقم بإنشاء ذاكرة تخزين مؤقت. إذا كانت موجودة، فسيقوم البرنامج تلقائيًا بإخراج ذاكرة التخزين المؤقت.
?>
يمكنك أن تفعل ما تريد هنا،
بما في ذلك تنفيذ PHP
أليس من الملائم جدًا أن يتم إكمال جميع استعلامات قاعدة البيانات، بما في ذلك استعلامات قاعدة البيانات، هنا طالما أن PHP تسمح بذلك؟
<?php
$cache->end();// لا تنس هذا،
// وإلا فلن يتم إنشاء ذاكرة التخزين المؤقت بنجاح.
// تخرج هذه الوظيفة من المخزن المؤقت للإخراج
}
?>
اذهب لمعرفة ما إذا كان هناك ملف آخر في دليل ذاكرة التخزين المؤقت؟
وبهذا نختتم مقدمة ذاكرة التخزين المؤقت، إليك بعض الأشياء التي يجب ملاحظتها:
1. يجب أن يكون معرف ذاكرة التخزين المؤقت فريدًا، ويمكن دمج بعض المعلمات
2. من الأفضل كتابة مسار مطلق لمسار ذاكرة التخزين المؤقت لذاكرة التخزين المؤقت.
3. ينصب تركيز هذا القسم على التعليقات. يرجى قراءة التعليقات بعناية،
بالإضافة إلى ذلك، من خلال المقدمة الخاصة بي، يمكنك قراءة الدليل المقابل حول كيفية حذف ذاكرة التخزين المؤقت. المثال أعلاه هو فقط لإلهام الآخرين استخدم المثال أعلاه، تابع، لا ينبغي أن تكون عملية ذاكرة التخزين المؤقت صعبة.