ตอนนี้ได้อะไรบ้าง
- cache ทั้งหน้าด้วย Memcached
- cache บางส่วนด้วย Memcached
- $tp->generate();
- $tp->applyBlock();
หลักการทำงาน
โดยปกติเราจะแสดงผลลัพท์ออกมาเลยด้วย $tp->display(); หากต้องการใช้งานอย่างอื่น
สามารถนำผลลัพท์ที่ได้จาก $tp->generate(); ไปใช้ ในตัวอย่างนี้คือการเก็บลง Memcached
ทั้ง 2 ตัวอย่างให้ลองกด reload ถี่ๆ สังเกตุตรงเวลา cache จะเปลี่ยนใหม่ทุก 5 วินาที
ผลการทำงาน 1 (cache ทั้งหน้า)
ผลการทำงาน 2 (cache บางส่วน)
_tp_memcached.html
<!DOCTYPE html> <html> <head> <title>$title</title> <link rel="stylesheet" href="module/bootstrap/bootstrap.min.css"> </head> <body> <div class="container"> <h3>$now</h3> <ul class="list-group"> $data <!--SiXhEaD:data--><li class="list-group-item">$no. $now</li> <!--/SiXhEaD:data--> </ul> </div> <script src="module/jquery/jquery.min.js"></script> <script src="module/bootstrap/bootstrap.min.js"></script> </body> </html>
memcached1.php
<?php require 'module/SiXhEaD.Template.php'; $mem = new Memcached(); $mem->addServer('127.0.0.1', 0000); $cache_name = "test1"; $cache = $mem->get($cache_name); if (!$cache) { $tp = new Template('_tp_memcached.html'); $title = 'วิธีใช้งานกับ Memcached1'; $now = date('Y-m-d H:i:s'); $tp->block('data'); for ($no = 1; $no < 6; $no++) { $tp->apply(); } $cache = $tp->generate(); $mem->set($cache_name, $cache, 5); } echo $cache; exit;
memcached2.php
<?php require 'module/SiXhEaD.Template.php'; $mem = new Memcached(); $mem->addServer('127.0.0.1', 0000); $tp = new Template('_tp_memcached.html'); $title = 'วิธีใช้งานกับ Memcached2'; $now = date('Y-m-d H:i:s'); $cache_name = "test2"; $data = $mem->get($cache_name); if (!$data) { for ($no = 1; $no < 6; $no++) { $data .= $tp->applyBlock('data'); } $mem->set($cache_name, $data, 5); } $tp->display(); exit;