Hướng dẫn học : Kĩ thuật Caching tăng tốc website trong CakePHP

Hướng dẫn học : Kĩ thuật Caching tăng tốc website trong CakePHP

Trước khi đọc bài này , nếu chưa rõ về thuật ngữ Caching các bạn có thể tìm hiểu trên google với từ khóa "Caching là gì" hoặc xem bài viết này để hiểu rõ hơn về thuật ngữ , xem tại đây

Trong CakePHP ta chỉ cần cấu hình và sử dụng, gồm các bước sau :

1. Vào app/config/core.php tìm

//Configure::write('Cache.check', true); 

và thay thế bằng

Configure::write('Cache.check', true); 

2. Sử dụng Caching trong 1 Controller :

Trong Controller ta khai báo biến

var $helpers = array("Cache"); 

Để Caching 1 action trong 1 Controlller ta khai báo :

var $cacheAction = array(
         'tên action'  => array('callbacks' => true, 'duration' => "thời gian cache"),
    ); 

3. Đánh dấu những phần không cần phải Cache :

Phần trình bày trên là ta Cache toàn bộ trang , sau một thời gian nhất định dữ liệu mới được cập nhật mới, nhưng đôi khi có những “khu vực nhất định” trong website chúng ta “không cần phải Cache khu vực đó″ và muốn nó luôn được cập nhật ta là như sau .

Trong file view của action trong Controller được Cache ta đánh dấu phần không cần phải Cache bằng đoạn mã

<cake:nocache>
<?php echo "This here didn't cache !" ?> // Phần không được cache
</cake:nocache>

Ví dụ một đoạn code xử lý đăng nhập trong file view không được Cache

<cake:nocache>
<?php if ($session->check('User.name')) : ?>
    Welcome, <?php echo $session->read('User.name')?>.
<?php else: ?>
    <?php echo $html->link('Login', 'users/login')?>
<?php endif; ?>
</cake:nocache>

Như ta thấy nếu đoạn code trên nếu được Cache thì khi đăng nhập thành công thì vẫn hiển thị link đăng nhập.

4. Xóa Caching :

Khi trường hợp Insert , Update hay Delete mà bạn muốn dữ liệu mới được cập nhật ngay ta dùng hàm :

Cache::clear() 

5.Ứng dụng :

Tôi có 1 Controller Books với 2 action :
- index() : hiển thị danh sách trong table Books , action này được qui định Cache trong 1 phút (tính bằng mili giây)
- view() : không cần phải Cache

Trong Controller Book của tôi như sau :

class BooksController extends  AppController{
 
    var $name = "Books";// ten cua Controller Book
 
    var $helpers = array('Cache');
 
    var $cacheAction = array(
         'index'  => array('callbacks' => true, 'duration' => 3600),
    );
 
    //-- View all Book
    function index(){
        $data = $this->Book->find("all");
        $this->set("data",$data);
    }
 
    //-- View detail item
    function view($id=NULL){
            $info = $this->Book->read(null,$id);
            $this->set("data",$info);
            $this->render("detail_view");
    }
} 

6. Ứng dụng :

Trước khi cấu hình cho Cache Controller Books, ta vào thư mục app/tmp/cache/view/ thì sẽ không thấy file được Cache , vì nội dung chưa được Cache , xem hình bên dưới

Hướng dẫn học :  Kĩ thuật Caching tăng tốc website trong CakePHP

Sau khi cấu hình Cache cho Controller Books và truy cập lại đường dẫn http://localhost/cakephp/books

Sau đó ta vào thư mục app/tmp/cache/view/ thì sẽ thấy file được Cache

Bây giờ các bạn thử tắt Mysql của server (disable) đi để không truy cập được Cơ sở dữ liệu và reload lại trang ta vẫn thấy kết quả bình thường cho đến khi hết 3600(thời gian được qui định trong đoạn mã trong Controller Book của ví dụ) giây kể từ lúc file cakephp_books.php được Cache .

Tham khảo tại : http://book.cakephp.org/view/1376/Cache

Tags: 
Bạn thấy bài viết này như thế nào?: 
No votes yet
Ảnh của Khanh Hoang

Khanh Hoang - Kenn

Kenn is a user experience designer and front end developer who enjoys creating beautiful and usable web and mobile experiences.

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
iPhone 4S trở thành smartphone chụp ảnh phổ biến thứ 2 trên Flickr

iPhone 4S trở thành smartphone chụp ảnh phổ biến thứ 2 trên Flickr

Chỉ một tháng sau khi phát hành, iPhone 4S đã nhanh chóng lọt vào top những smartphone chụp ảnh phổ biến chia sẻ ảnh lên mạng Flickr.

Nhà mạng sẽ khuyến khích dùng 3G vào ban đêm bằng giá cước rẻ

Trong năm tới, sẽ có nhiều gói cước được ban hành tương ứng chất lượng, thậm chí nhà mạng sẽ có giá cước 3G rất rẻ vào ban đêm để khuyến khích người dùng vào lúc mạng có lưu lượng thấp.

5 máy tính bảng cấu hình tốt giá dưới 200 USD

5 máy tính bảng cấu hình tốt giá dưới 200 USD

Kindle Fire hay IdeaPad A1 là những máy tính bảng có cấu hình khá “ổn”, đến từ các thương hiệu nổi tiếng như Amazon hay Lenovo, và mức giá chỉ là 199 USD.

Công ty diệt chuột T&C

 

Diet con trung