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.

Quảng cáo việc làm

 

Thích hợp các bạn nữ mảng thợ may làm việc tại nước NGA

Đơn hàng Tuyển dụng 100 Thợ may đi Nga(đợt 1 tháng 3.2021, đợt 2 tháng 5.2021). Lương thực lãnh 800 USD, bao ăn ở, vé máy bay và visa, phí xuất cảnh(1800 USD)trả khi đi làm có lương. Bạn có thể liên hệ CÔNG TY qua Phone/Zalo: (+84) 944 225 212. Công ty sẽ tư vấn cho bạn.

Xem chi tiết: >>> https://bit.ly/3o9NOfR

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

 
 Năm 2012 MacBook Pro sẽ được thiết kế lại để giống như MacBook Air?

Năm 2012 MacBook Pro sẽ được thiết kế lại để giống như MacBook Air?

Apple hiện đang có một kế hoạch để thiết kế lại máy tính xách tay MacBook Pro và có thể nó sẽ lấy cảm hứng từ gia đình MacBook Air.

Hướng dẫn MixItUp and Drupal 7 Views

Hướng dẫn MixItUp and Drupal 7 Views

Recently I had to create a View with exposed filters that refine the results by certain taxonomy terms. In the meantime, the design team came across the MixItUp JQuery library

Grunt, một Backend-free apps kết hợp jekyll, D3.js, nhanh hơn 96% websites khác

Grunt, một Backend-free apps kết hợp jekyll, D3.js, nhanh hơn 96% websites khác

Jekyll was used to create the actual HTML. Nothing too fancy here, but it served its purpose - generating the HTML that we'll later into GitHub Pages.