إخراج ذاكرة التخزين المؤقت للمحتوى PEAR ذاكرة التخزين
المؤقت بعد ذلك، نبدأ في استكشاف تقنيات التخزين المؤقت الأكثر استخدامًا، والتي تعد أيضًا محور هذه المقالة. أولاً نستخدم حزمة ذاكرة التخزين المؤقت في PEAR. يمكن لـ PEAR تخزين المحتوى مؤقتًا في الملفات أو قواعد البيانات أو الذاكرة، فلنأخذ الملفات كمثال.
إليك برنامج PHP صغير لا يستخدم التخزين المؤقت:
pear_content_cache1.php
<?php
صدى "هذا هو المحتوى.<P>";
echo "الوقت الحالي هو" date('MdY H:i:s A', time()) "<BR>";
?>
البرنامج أعلاه بسيط للغاية، والآن نضيف إليه التخزين المؤقت.
pear_content_cache2.php
<?php
require_once 'Cache/Output.php'
// قم بتعيين دليل ذاكرة التخزين المؤقت الذي يجب أن يكون قابلاً للكتابة $cacheDir = './pear_cache';
$cache = new Cache_Output('file',array('cache_dir' => $cacheDir));
// إذا كان متغير nocache فارغًا، فاستخدم المحتوى الموجود في ذاكرة التخزين المؤقت // إذا كنت ترغب في الحصول على أحدث محتوى، فقم بتعيينه إلى متغير nocache إذا (فارغ($_REQUEST['nocache']))
{
// إنشاء معرف ذاكرة تخزين مؤقت فريد // طلب + معلومات ملف تعريف الارتباط $cache_id = $cache->generateID(array('url' => $_REQUEST,'post' =>$_POST,'cookies' => $HTTP_COOKIE_VARS) );
}
آخر
{
// إذا كنت ترغب في الحصول على أحدث محتوى، فإن المعرف فارغ $cache_id = null;
}
// تحقق مما إذا كان محتوى ذاكرة التخزين المؤقت المطابق لمعرف ذاكرة التخزين المؤقت متاحًا if ($content = $cache->start($cache_id))
{
// ذاكرة التخزين المؤقت موجودة بالفعل، قم بالإخراج مباشرة، وقم بإنهاء البرنامج النصي echo $content;
مخرج()؛
}
// المحتوى غير موجود في ذاكرة التخزين المؤقت، أنشئ محتوى جديدًا واكتبه في ذاكرة التخزين المؤقت echo "This is the content.<P>";
echo "الوقت الحالي هو" . date('MdY H:i:s A', time()) "<BR>";
// اكتب المحتوى في ذاكرة التخزين المؤقت echo $cache->end();
>
قم بتحديث هذين الملفين على التوالي، وستجد أن الوقت في السطر "الوقت الحالي هو" في pear_content_cache1.php يتغير مع التحديث، بينما هذا السطر في pear_content_cache2.php لا يتغير. وذلك لأن pear_content_cache2.php يستخدم التخزين المؤقت لتخزين المحتوى الذي يطلبه المستخدم في ملف ثابت. عندما يطلب المستخدم مرة أخرى، يتم إخراجه مباشرة من الملف دون الحاجة إلى برنامج لإنشاء المحتوى ديناميكيًا.
بالنسبة إلى pear_content_cache2.php، إذا أراد المستخدم قراءة أحدث المعلومات بدلاً من المعلومات القديمة في ذاكرة التخزين المؤقت. ثم يمكنك الوصول إليه باستخدام http://…/pear_content_cache2.php?nocache=1 ، والذي سيؤدي إلى تعطيل وظيفة التخزين المؤقت. قم بتحديثه ولاحظ أن الوقت سيتغير وفقًا لذلك.
لتلخيص استخدام فئة التخزين المؤقت لمحتوى PEAR:
1. عند تضمين حزمة PEAR، تأكد من ضبط المسار الصحيح.
2. يحتوي على فئة ذاكرة التخزين المؤقت في Output.php
require_once 'Cache/Output.php'
3. قم بتعيين دليل ذاكرة التخزين المؤقت
$cacheDir = './pear_cache'؛
تأكد من أن هذا الدليل قابل للكتابة. ستتم كتابة بيانات ذاكرة التخزين المؤقت إلى الدلائل الفرعية لهذا الدليل.
4. إنشاء كائن ذاكرة تخزين مؤقت للإخراج
$cache = new Cache_Output('file',array('cache_dir' => $cacheDir));
تشير المعلمة الأولى إلى أننا نستخدم ذاكرة تخزين مؤقت بناءً على طريقة "الملف"، والمعلمة الثانية هي a مصفوفة ذاكرة التخزين المؤقت المرتبطة بالدلائل.
5. قم بإنشاء معرف ذاكرة تخزين مؤقت فريد
$
cache_id = $cache->generateID(array('url' => $_REQUEST,'post' =>$_POST,'cookies' => $HTTP_COOKIE_VARS));
( ) من خلال توفير مجموعة من المعلومات (عنوان URL وبيانات HTTP POST وملفات تعريف ارتباط HTTP) لتحديد هذا الطلب بشكل فريد وتمييزه عن الطلبات الأخرى.
6. أضف عبارة حكم منطقية لمعرفة ما إذا كانت بيانات ذاكرة التخزين المؤقت المقابلة لمعرف ذاكرة التخزين المؤقت موجودة بالفعل، إذا كانت موجودة، فاحصل على البيانات وقم بإنهاء البرنامج النصي.
إذا ($content = $cache->start($cache_id))
{
صدى محتوى $؛
مخرج()؛
}
7. ضع الكود الذي يُنشئ المحتوى بعد العبارة المنطقية أعلاه وانتهي باستخدام كائن ذاكرة التخزين المؤقت.
echo $cache->end(
)
; هذه ميزة مثيرة جدًا للاهتمام، إذا كان برنامجك يستخدم وظيفة معينة بشكل متكرر وكانت نتيجة الاتصال هي نفسها، أقترح عليك تجربتها، خاصة إذا كانت هذه الوظيفة تعمل ببطء.
بعد ذلك، نقوم بتنفيذ استدعاء مخزن مؤقت لـ SlowFunction()، وهي دالة يتم تنفيذها ببطء شديد.
<?php
require_once 'Cache/Function.php';
$cacheDir = './pear_cache/';
$cache = new Cache_Function('file',array('cache_dir' => $cacheDir));
$arr = array('apple', 'كمثرى', 'بطيخ');
$cache->call('slowFunction', $arr);
echo '<BR>'
$arr = array('apple', 'pear', 'watermelon');
SlowFunction($arr);
وظيفة بطيئة($arr = null)
{
echo "دالة يتم تنفيذها ببطء شديد: ( <br>";
echo "الوقت الحالي هو" date('MdY H:i:s A', time()) '<br>';
foreach ($arr كفاكهة $)
{
صدى "أكلت فاكهة $<br>";
}
)
?>
ما يلي هو نتيجة تنفيذ البرنامج النصي للمثال:
دالة يتم تنفيذها ببطء شديد.
الوقت الحالي هو 28 يوليو 2004 الساعة 17:15:57 مساءً
أكلت تفاحة، أكلت كمثرى، أكلت بطيخ،
وظيفة تنفذ ببطء شديد :(
الوقت الحالي هو 28 يوليو 2004 17:17:55 مساءً
أكلت تفاحة، أكلت كمثرى، أكلت بطيخًا،
في الكود، يتم استخدام فئة Cache/Function.php لأداء وظيفة التخزين المؤقت. متغير ذاكرة التخزين المؤقت $ هو كائن Cache_Function يستخدم التخزين المؤقت للوظيفة المستندة إلى الملف ويتم تخزينه في دليل $cacheDir. للتخزين المؤقت لاستدعاء دالة، يجب استخدام طريقة call() لكائن Cache_Function $cache على النحو التالي: $cache->call('slowFunction', $arr);
هنا، يتم استدعاء الدالة SlowFunction() والمعلمة عبارة عن صفيف $arr، يتم تخزين هذه الوظيفة مؤقتًا في ملف في دليل $cacheDir. أي استدعاءات لاحقة لهذه الوظيفة سيكون لها نتيجة تنفيذ الوظيفة التي يتم إرجاعها بواسطة $cache->call(). يشبه التخزين المؤقت للوظائف واستخدامه إلى حد كبير التخزين المؤقت للمحتوى، لذا لن أخوض في التفاصيل، يرجى مراجعة دليل PEAR للحصول على التفاصيل.