ตอนนี้ได้อะไรบ้าง
- 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;