Thường khi viết PHP theo hướng viết thuần thì mọi người khi viết code PHP chung với HTML việc này gây khó khăn trong việc bảo trì. Việc dùng template giúp code bạn dễ đọc hơn hữu ích trong môi trường làm việc nhóm. Một số template hỗ trợ encape giúp web thêm bảo mật.
Hiện nay có rất nhiều template như Blade trong laravel, Twig, Brainy, Yats, Smarty … trong bài này mình xin giới thiệu Smarty một trong những template lâu đời nhất và rất được các công ty trên thế giới ưa chuộng
1. Một số cú pháp cơ bản smarty.
Smarty hỗ trợ một vài cú pháp lập trình nâng cao, bao gồm :
- Biến, hằng
- If, elseif, else
- Điều khiển luồng dữ liệu, foreach.
- Hàm do người dùng địnhn nghĩa .
- …
Nội dung | PHP | Smarty |
---|---|---|
Mở và đóng thẻ | <?php ?> |
{ } |
Ghi chú | //Ghi chú một dòng hoặc /* ghi chú nhiều dòng */ |
{* ghi chú một hoặc nhiều dòng*} |
Hiển thị biến | <?php echo $ten_bien; ?> |
{$$en_bien} |
Hiển thị biến_GET, |
<?php echo $_GET[''page] ;?> |
{smarty.get.page} |
Hiển thị giá trị một phần của mảng | <?php echo ten_mang[vi_tri]?> |
{$$en_mang[vi_tri]} |
Duyệt mảng dùng vòng lặp foreach |
<?php |
{foeach (ten_mang as ten_phan_tu} |
if |
<?php |
{if isset($$oo) } |
2. Caching – bộ nhờ đệm
Bộ nhớ đệm được sử dụng để tăng tốc độ gọi display()
hoặc fetch()
bằng cách lưu output vào file.
Nếu có một phiên bản được cache thì nó sẽ hiển thị thay vì regenerating.
Caching có thể tăng tốc độ trang lên rất nhiều, đặc biệt đối với template có thời gian tính toán dài
Lưu ý: template nào đang được cached và caching trong bao lâu.
Xem bài viết đầy đủ tại https://www.daipho.com
Vị dụ ta hiển thị home page mà không thay đổi nội dung thường xuyên thị ta có thể cache trong 1, 2 giờ hoặc lâu hơn. Nếu là trang tin tức thay đổi nội dung thường xuyên thì không nên dùng cache
2.1 Thiết lập cache
Bằng cách đặt caching = 1 hoặc bằng 2
Khi caching = 1
<?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 1; $smarty->display('index.tpl'); ?>
Sẽ thiệt lập thời gian mặc định caching.
Khi caching = 2
<?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 2; // thiết lập cache chi trang index là 5 phút. $smarty->cache_lifetime = 300; $smarty->display('index.tpl'); ?>
3. Kế thừa template
Ta có trang view home.tpl
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>{block name=title }Home Page{/block}</title> </head> <body> ... </body> </html>
Mypage.tpl
kế thừa Home.tpl
ta có block giống như một biến giữa block giá trị mặc định. Hàm kế thừa ta có thể thay đổi nội dung.
{extends file=''Home.tpl"}
{block name=title }My Page{/block}
Qua bài này mình hy vọng các bạn đã hiểu về Smaty. Chúc mọi người thành công trên con đường lập trình !!