Cách tạo Cache cho website đơn giản mà hữu hiệu với PHP

12/02/2014

Tốc độ luôn luôn là vấn đề sống còn cho một website, bạn thử tưởng tượng xem, nếu bạn viếng thăm một trang web hay blog nào đó, mà thời gian load trang rất lâu thì ắt hẳn là bạn sẽ chẳng còn muốn quay lại website hay blog đó nữa. Có rất nhiều cách để cải thiện tốc độ load trang web, và một trong số đó là tạo cache.

php-simple-cache
Mình sẽ không đi sâu quá nhiều về định nghĩa Cache, trong bài viết này, mình sẽ chia sẻ cho các bạn 3 bước để tạo cache cho trang web bằng PHP.

Bước 1 : Tạo file top-cache.php

Các bạn tạo một file mới, và đặt tên cho file này là top-cache.php sau đó copy toàn bộ đoạn code bên dưới và dán (paste) vào nó.

<?php
$url = $_SERVER["SCRIPT_NAME"];
$break = Explode('/', $url);
$file = $break[count($break) - 1];
$cachefile = 'cached-'.substr_replace($file ,"",-4).'.html';
$cachetime = 18000;

// Serve from the cache if it is younger than $cachetime
if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
    echo "<!-- Cached copy, generated ".date('H:i', filemtime($cachefile))." -->\n";
    include($cachefile);
    exit;
}
ob_start(); // Start the output buffer
?>

5 dòng đầu tiên trong đoạn code bên trên sẽ tạo tên cho file cache dựa vào tên php hiện tại. Giả sử bạn cần tạo cache cho file list.php, thì tên cache file được tạo sẽ là cached-list.html.
Dòng code thứ 6 sẽ tạo một biến $cachetime, biến này sẽ quyết định vòng đời tồn tại của cache. Từ dòng 9 – 13 là dòng điều kiện kiểm tra xem file cache đã được tạo trước đó hay chưa, nếu nó đã tồn tại thì nó sẽ được chèn vào (tại dòng 10) sau đó nó sẽ thoát với câu lệnh exit.

Bước 2 : Tạo file bottom-cache.php

Tương tự như bước 1 , các bạn tạo một file mới và đặt tên là bottom-cache.php, sau đó copy toàn bộ đoạn code sau và dán vào bên trong nó.

<?php
// Cache the contents to a file
$cached = fopen($cachefile, 'w');
fwrite($cached, ob_get_contents());
fclose($cached);
ob_end_flush(); // Send the output to the browser
?>

Nếu tên file $cachefile không tìm thấy trên server, thì đoạn code bên trên sẽ được thực thi và nội dung sẽ được ghi vào file $cachefile  này. Để lần gọi kế tiếp, thay vì phải thực thi lại toàn bộ file php thì file tĩnh $cachefile sẽ được trả về tại máy người dùng.

Bước 3 : Chèn cache files vào trang của các bạn
Bây giờ, mỗi khi các bạn cần tạo cache cho trang nào, thì chỉ cần đặt như sau :

<?php

include('top-cache.php');

// PHP code thong thuong dat o day

include('bottom-cache.php');
?>

Bây giờ các bạn có thể áp dụng ngay cache cho những trang có tốc đọ load chậm và kiểm tra lại tốc độ cho những lần kế tiếp thử xem. Mình mong là với thủ thuật đơn giản này, sẽ giúp ích cho các bạn.

Chuyên Mục:

Bài viết được đăng bởi webmaster

Nếu các bạn thấy bài viết hữu ích thì giúp mình Like cái nhé !