ฉันเคยแนะนำการติดตั้งลูกแพร์ไปแล้ว วันนี้ฉันจะแนะนำหนึ่งในแพ็คเกจลูกแพร์ที่รู้จักกันดี หากมีอะไรไม่ชัดเจน โปรดค้นหา "บทช่วยสอน PEAR" บนเว็บไซต์เพื่อรับบทช่วยสอนก่อนหน้า!
สิ่งที่เราจะแนะนำในวันนี้คือแพ็คเกจ Cache_Lite ของ PEAR ดวงตาของนักพัฒนาเว็บเบิกกว้างเมื่อพวกเขาพูดถึงการเร่งความเร็ว เช่นเดียวกับที่ผู้ชายจะเบิกตากว้างเมื่อเห็นความงามอันน่าทึ่ง ดังนั้นสิ่งแรกที่ผมอยากแนะนำที่นี่คือแพ็คเกจ Cache_lite ของ PEAR คุณสามารถใช้แพ็คเกจนี้เพื่อแคชส่วนใดส่วนหนึ่งของหน้าเว็บได้ตามความต้องการของคุณ ซึ่งจะช่วยปรับปรุงการสร้างเพจและความเร็วในการโหลดได้อย่างมาก!
ขั้นแรก ไปที่ Pear's List Package เพื่อดาวน์โหลดแพ็คเกจการติดตั้ง Cache_Lite เมื่อเขียนบทช่วยสอนนี้ เวอร์ชันเสถียรคือ 1.7.2 ดังนั้นเราจึงดาวน์โหลดเวอร์ชันนี้ จากนั้นแตกไฟล์ออกหลังจากดาวน์โหลด จากนั้นจึงวางไฟล์ไว้ในไดเร็กทอรีรากของ PEAR ( วิธีจัดระเบียบไดเร็กทอรีไฟล์จะแนะนำในภายหลัง) จากนั้นเราจะไปที่บทที่เกี่ยวข้องของคู่มือเพื่อดูวิธีใช้งาน คุณสามารถดูคำแนะนำเกี่ยวกับแพ็คเกจก่อนได้ ที่นี่ ไม่มีการเล้าโลม และเราจะไปที่หัวข้อนี้โดยตรง ต่อไปนี้เป็นตัวอย่างของ Cache_Lite::get() เริ่มจากตัวอย่างนี้กันก่อน ฉันเพิ่มความคิดเห็นภาษาจีนลงในตัวอย่างแล้ว
need_once "Cache/Lite.php";//นี่คือที่อยู่ที่สัมพันธ์กับ PEAR หลังจากค้นหาไฟล์ Lite.php ในแพ็คเกจที่คุณเพิ่งดาวน์โหลด คุณควรรู้วิธีปรับใช้โฟลเดอร์นี้!
$options=อาร์เรย์(
'cacheDir'=>'/tmp/',//นี่คือเส้นทางของแคช วิธีที่ดีที่สุดคือใช้เส้นทางสัมบูรณ์ ซึ่งจะอธิบายไว้ในตัวอย่างของเรา
'lifeTime'=>7200, //เวลาหมดอายุของแคชเป็นวินาที
'pearErrorMode'=>CACHE_LITE_ERROR_DIE//โหมดการรายงานข้อผิดพลาด
-
$cache=newCache_Lite($options);//สร้างแคชหลังจากตั้งค่าพารามิเตอร์
if($data=$cache->get('id_of_the_page')){//หากมีแคชที่มี id=id_of_the_page อยู่ ให้สะท้อนข้อมูลที่แคชออกมาโดยตรง
// แคชโดน!
// เนื้อหาอยู่ใน $data
-
}else{//หากไม่มีแคช ให้สร้างแคช
// ไม่พบแคชที่ถูกต้อง (คุณต้องสร้างและบันทึกเพจ)
-
}
หลังจากอ่านตัวอย่างข้างต้น คุณพบว่ามันง่ายมากใช่หรือไม่ ที่จริงแล้ว สิ่งสำคัญในการแคชไม่ใช่วิธีการสร้างและลบแคช แต่เป็นวิธีการสร้างสมดุลระหว่างความสัมพันธ์ระหว่างแคชแบบคงที่และไดนามิก และวิธีสร้างแคชใหม่ในเวลาที่เหมาะสม ผมขอเริ่มด้วยตัวอย่างเพื่อให้ทุกคนตระหนักถึงประโยชน์ของการแคช! โปรดสร้างแคชไฟล์ภายใต้ tutor (ไดเรกทอรีรากที่สอดคล้องกับตัวอย่างในบทช่วยสอนของเรา) สำหรับระบบปฏิบัติการ *nix โปรดตั้งค่าคุณสมบัติเป็น 0777 จากนั้นสร้าง cache.php ใต้โฟลเดอร์ tutor ป้อนโค้ดต่อไปนี้
<? PHP
need_once"config.php";
need_once"แคช/Lite.php";
//โค้ดต่อไปนี้คือการคำนวณเวลาดำเนินการของเพจและไม่เกี่ยวข้องกับแคช
functionget_microtime()
-
list($usec,$sec)=explode(' ',microtime());
กลับ((ลอย)$usec+(ลอย)$วินาที);
-
$s= get_microtime();
//ต่อไปนี้เป็นการตั้งค่าแคช
$options=อาร์เรย์(
'cacheDir'=> WEB_DIR."/cache/",
//กรุณาไปที่ติวเตอร์ (ไดเร็กทอรีรากที่สอดคล้องกับตัวอย่างในบทช่วยสอนของเรา)
//สร้างแคชไฟล์
//*ระบบปฏิบัติการ nix โปรดตั้งค่าแอตทริบิวต์เป็น 0777
'lifeTime'=>10,//10 วินาทีเวลาหมดอายุ
'pearErrorMode'=>CACHE_LITE_ERROR_DIE
-
$cache=newCache_Lite($ตัวเลือก);
$cache_id='cache'; //id จะต้องไม่ซ้ำกัน
//มิฉะนั้นจะขัดแย้งกับแคชของผู้อื่น
ถ้า($data=$cache->get($cache_id)){
//data เป็นผลมาจากการรับข้อมูล หากแคชมีอยู่และยังไม่หมดอายุ
// รับข้อมูลโดยตรง
เสียงสะท้อน $ ข้อมูล;
}อื่น{
//มิฉะนั้นเราจะสร้างแคชขึ้นมา
// ด้านล่างนี้เราจงใจใช้ลูปเพื่อใช้เวลา
ในขณะที่($i<10000000)
$i++;
$data='เวลาสร้างแคช:'.date("Ymd H:i:s");
$data.="<p>เวลาดำเนินการโดยไม่มีแคชคือ: ".(get_microtime()-$s).."วินาที";
เสียงสะท้อน $ ข้อมูล;
$แคช->บันทึก($ข้อมูล);
-
echo"<p>หน้าปัจจุบันใช้เวลา: ".(get_microtime()-$s).."วินาที</p>";
-
เรียกใช้ http://127.0.0.1/tutor/cache.php ในเบราว์เซอร์แล้วดูว่าไฟล์ถูกสร้างขึ้นในไดเรกทอรีแคชหรือไม่ -
บนหน้าเว็บ เราพบว่ารันไทม์ครั้งแรกใช้เวลาประมาณ 1 วินาที และหลังจากสร้างแคช เวลาก็เพียง 1/1000 ของต้นฉบับ ฉันไม่จำเป็นต้องอธิบายประสิทธิภาพนี้อีกต่อไป! - ในความเป็นจริง กระบวนการทั่วไปของตัวอย่างข้างต้นคือ: 1. สร้างพารามิเตอร์แคช รวมถึง ID แคช 2. ตรวจสอบว่าแคชมีอยู่ตามพารามิเตอร์และ ID ถ้ามีอยู่ ข้อมูลแคชจะได้รับใน $data ตัวแปรแล้วสะท้อนออกมา ไม่เช่นนั้น สร้างแคชใหม่ บันทึกผลลัพธ์ของเพจในตัวแปร จากนั้นเขียนข้อมูลของตัวแปรลงในแคช อย่างไรก็ตาม วิธีการนี้ไม่สะดวกมาก เนื่องจากเราต้องเขียนเอาต์พุตทั้งหมดลงในตัวแปร ซึ่งจริงๆ แล้วยุ่งยากกว่านั้น ต้องใช้การเชื่อมต่อแบบสตริงจำนวนมาก และแน่นอนว่า แนะนำให้ใช้แคชแบบง่ายที่สุด ใช้แนวทางนี้ แต่ไม่ต้องกังวล PEAR อันทรงพลังไม่ได้ปัญญาอ่อนมากนัก ดังนั้นจึงมีวิธีอื่นในการรับบัฟเฟอร์และนำตัวแปรออกมา มาดูตัวอย่างง่ายๆ นี้กัน .
<?php
need_once"config.php";
need_once "แคช/Lite/Output.php";
//โปรดทราบว่าไฟล์ที่ต้องการที่นี่แตกต่างออกไป
$options=อาร์เรย์(
'cacheDir'=> WEB_DIR."/cache/",
'lifeTime'=>10,//10 วินาทีเวลาหมดอายุ
'pearErrorMode'=>CACHE_LITE_ERROR_DIE
-
$cache=newCache_Lite_Output($ตัวเลือก);
$cache_id='obcache';
ถ้า(!($แคช->เริ่มต้น($cache_id))){
//หากไม่มีอยู่ ให้สร้างแคช ถ้ามี โปรแกรมจะส่งออกแคชโดยอัตโนมัติ
-
คุณสามารถทำอะไรก็ได้ที่คุณต้องการที่นี่
รวมถึงการรัน php.ini
ไม่สะดวกนักหรือที่การสืบค้นฐานข้อมูลทั้งหมดรวมถึงการสืบค้นฐานข้อมูลสามารถดำเนินการได้ที่นี่ตราบใดที่ PHP อนุญาต
<?php
$cache->end();//อย่าลืมสิ่งนี้
//ไม่เช่นนั้นแคชจะไม่ถูกสร้างขึ้นสำเร็จ
//ฟังก์ชันนี้ออกมาจากบัฟเฟอร์เอาท์พุต
-
?>
ไปดูว่ามีไฟล์อื่นอยู่ในไดเรกทอรีแคชหรือไม่?
นี่เป็นการสรุปบางสิ่งที่ควรทราบ:
1. ID ของแคชต้องไม่ซ้ำกัน และสามารถรวมพารามิเตอร์บางตัวได้
2. วิธีที่ดีที่สุดคือเขียนเส้นทางที่แน่นอนสำหรับเส้นทางแคชของแคช
3. จุดเน้นของส่วนนี้อยู่ที่ความคิดเห็น โปรดอ่านความคิดเห็นอย่างละเอียด
นอกจากนี้ คุณสามารถอ่านคู่มือที่เกี่ยวข้องเกี่ยวกับวิธีการลบแคชได้ ตัวอย่างข้างต้นเป็นเพียงการสร้างแรงบันดาลใจให้ผู้อื่น ใช้ตัวอย่างข้างต้นดำเนินการต่อ การดำเนินการแคชไม่ควรเป็นเรื่องยาก