Bài giảng Lập trình viên mã nguồn mở PHP - Module 3, Bài 9: Smarty. Template Engine 2

Caching - bộ nhớ đệm

□ Giới thiệu

• Bộ nhớ đệm được sử dụng để tăng tốc độ gọi sử dụng phương thức displayO hoặc fetch() bằng cách lưu trữ dữ liệu xuất ra file.

• Nếu đã có một phiên bản được cache thì nó sẽ tự hiển thị thay vì phải tạo ra một dữ liệu xuất khác.

Caching có thể đưa tốc độ tàng lên rất nhiều, nhất là đối với những template có thời gian tính toán dài. Khi dữ liệu xuất của displayO hoặc fetch() được lưu vào bộ nhớ đệm, một file cache có thể chứa nội dung thực hiện của một số file template và file config

 

docx 18 trang kimcuc 5180
Bạn đang xem tài liệu "Bài giảng Lập trình viên mã nguồn mở PHP - Module 3, Bài 9: Smarty. Template Engine 2", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Lập trình viên mã nguồn mở PHP - Module 3, Bài 9: Smarty. Template Engine 2

Bài giảng Lập trình viên mã nguồn mở PHP - Module 3, Bài 9: Smarty. Template Engine 2
Trường ĐH Khoa Học Tự Nhiên Tp. Hồ Chi Minh
TRUNG TÂM TIN HỌC
LTV MÃ NGUÒN MỜ PHP
Module 3 - Bài 9: Smarty - Template Engine 2
Ngành LT & CSDL
www.t3h.vn
xMediaFire
PHP code và Smarty class
□ Hằng SMARTY-DIR
Khai báo hằng số SMARTY-DIR: đường dẫn chứa thư viện Smarty
define('SMARTY_DIR', 'đường dẫn đến thư mục Smarty/libs/');
Gọi sử dụng lớp Smarty.class của thư viện Smarty:
require_once(SMARTY_DIR . 'Smarty.class.php');
eVídụ:
defìne('SMARTY_DIR',’../Smarty/libs/');
MC
	 require_once(SMARTY_DIR . 'Smarty.class.php’);
M
MC
MC
Caching - bộ nhớ đệm
□ Giới thiệu
■
Bộ nhớ đệm được sử dụng để tăng tốc độ gọi sử dụng phương thức displayO hoặc fetch() bằng cách lưu trữ dữ liệu xuất ra file.
Nếu đã có một phiên bản được cache thì nó sẽ tự hiển thị thay vì phải tạo ra một dữ liệu xuất khác.
Caching có thể đưa tốc độ tàng lên rất nhiều, nhất là đối với những template có thời gian tính toán dài. Khi dữ liệu xuất của displayO hoặc fetch() được lưu vào bộ nhớ đệm, một file cache có thể chứa nội dung thực hiện của một số file template và file config...
Caching - bộ nhớ đệm
□ Giới thiệu
Khi các mẫu template động thì cần phải chú ý cân nhắc xem nội dung nào được cache và trong thời gian bao lâu.
Ví dụ, ta đang hiển thị front page của website mà không thay đổi nội dung của nó thường xuyên, sẽ rất tốt nếu lưu cache trang này trong một giờ và có thể lâu hơn. Ngược lại, nếu một trang mà nội dung của nó bao gồm các thông tin mới thay đổi thường xuyên thì việc sử dụng cache sẽ không có ý nghĩa.
Caching - bộ nhớ đệm
• Khi caching = 2: có thiết lập thời gian cho mỗi cache
require('Smarty.class.php');
Ssmarty = new Smarty; $smarty->caching = 2;
II thiết lập cachejifetime cho trang index.tpl là 5 phút $smarty->cache_lifetime = 300;
$smarty->display(*index.tpl‘);
II thiết lập cachejifetime cho trang home.tpl là 1 giờ $smarty->cache_lifetime = 3600;
$smarty->display(*home.tpl*);
Caching - bộ nhớ đệm
□ Kiểm tra cache
• Sử dụng phương thức is_cached() đẻ kiềm tra một template có được cache hay không
require('Smarty.class.php');
Ssmarty = new Smarty; $smarty->caching = 1; if(l$smarty*>is_cached('index.tpl')) {
// nếu chưa được cache
Scontents = get_database_contents(); $smarty->assign($contents);
$smarty->display('index.tpr);
Caching - bộ nhớ đệm
□Sử dụng nhiều cache trên một trang
• Có thể sử dụng nhiều cache trên một trang
require('Smarty.class.php');
Ssmarty = new Smarty;
$smarty->caching = 1;
$my_cache_id = $_GET['articleJd'];
// với mỗi giá trị $my_cache_id duy nhất, thì sẽ có một cách được tạo ra cho trang for index.tpl.
$smarty->display('index.tpr, $my_cache_id);
LTV Mã nguồn mờ PHP - Module 3
21
Kế thừa - Template Inheritance
□ So sánh template có kế thửa và không kế thừa
Template không kế thửa
Template có kế thừa
header.tpl:
{$title|default:"Default Page
Title"} 
footer.ỉpl
layout.tpl
{block name=title}Default
Page Title{/block}
{block name=body}{/block} 
mypage.tpl
{include file-’header.tpl" title="My
Page Title"}
My HTML Page Body goes here
{include file-'footer.tpl"}
{extends file="layout.tpl"}
{block name=title}My Page
Title{/block}
{block name=body} My HTML Page Body goes here {/block}
Kế thừa - Template Inheritance
□ So sánh template có kế thừa và không kế thừa
Template không kế thừa
Template có kế thừa
Nội dung xuất ra của file mypage.tpl
My Page Title 
My HTML Page Body goes here 
Nội dung xuất ra của file mypage.tpl
My Page Title 
My HTML Page Body goes here 

File đính kèm:

  • docxbai_giang_lap_trinh_vien_ma_nguon_mo_php_module_3_bai_9_smar.docx
  • pdfttth_dh_khtn9_7022_541352.pdf