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

□ Smarty là một hệ thống tạo mẩu web (web template system) được viết trên nền PHP, nó tạo điều kiện cho việc tách phần trình bày ra khỏi phần code.

□ Smarty là một công cụ dùng cho việc chia nhỏ các quá trình thiết kế trang web. Đày là một chiến lược thiết kế cho các ứng dụng web hiện đại.

□ Smarty là kết quà của việc tối ưu hóa và phân luồng công việc, cho phép trình diễn các trang web bằng cách chia nhò chúng ờ đầu cuối (back-end). Ý tường đó đã giúp giàm thiểu rất nhiều giá thành và sự đồ sộ của các phần mềm. Dưới mỗi một ứng dụng thành công thì luôn phân chia thành 2 màng là thiết kế, chính là lá chắn bảo vệ mã nguồn (back-end coding) và lập trình php được bảo vệ bởi code.

 

docx 17 trang kimcuc 8700
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 8: Smarty. Template Engine 1", để 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 8: Smarty. Template Engine 1

Bài giảng Lập trình viên mã nguồn mở PHP - Module 3, Bài 8: Smarty. Template Engine 1
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 8: Smarty - Template Engine 1
Ngành LT & CSDL
www.t3h.vn
Giới thiệu
■
Smarty là một hệ thống tạo mẩu web (web template system) được viết trên nền PHP, nó tạo điều kiện cho việc tách phần trình bày ra khỏi phần code.
Smarty là một công cụ dùng cho việc chia nhỏ các quá trình thiết kế trang web. Đày là một chiến lược thiết kế cho các ứng dụng web hiện đại.
MC
VMediaFire
IIẾ
Smarty là kết quà của việc tối ưu hóa và phân luồng công việc, cho phép trình diễn các trang web bằng cách chia nhò chúng ờ đầu cuối (back-end). Ý tường đó đã giúp giàm thiểu rất nhiều giá thành và sự đồ sộ của các phần mềm. Dưới mỗi một ứng dụng thành công thì luôn phân chia thành 2 màng là thiết kế, chính là lá chắn bảo vệ mã nguồn (back-end coding) và lập trình php được bảo vệ bởi code.
Giới thiệu
■
Smarty tạo ra các nội dung web từ các vị trí đặc biệt được gọi là smarty tag .
Các tag này được nằm trong các mẫu (template), sẽ được xừ lý và chèn vào các code khác nhau.
Các tag này chỉ thị cho Smarty, được bao đóng bởi tag mở và tag khóa. Những nội dung được chèn vào code, và được định nghĩa bởi dấu dollar ($), các chức năng, hàm logic hoặc các luồng điều khiển.
Smarty cho phép các lập trình viên có thể tự định nghĩa các chức năng và truy cập sử dụng các Smarty tag.
Giới thiệu
■
□ Hai cách tiếp cận template
Cách thứ nhất: cho rằng “PHP là template engine”. Cách tiếp cận này đơn giản chỉ là trộn lẫn mã PHP với thẻ HTML. Mặc dù cách này khi thực hiện rất nhanh chóng nhưng nhiều người cho rằng cách này sẽ gây khó khăn cho việc duy trì ứng dụng. PHP làm công việc lập trình rất tốt nhưng không vì thế mà nó tốt cho việc trình bày.
Cách thứ hai cho rằng cần phải tách biệt giữa code và template, đây là cách tiếp cận mà Smarty thực hiện.
Giới thiệu
■
□ Mục tiêu:
■
Tách phần trinh bày khỏi phần code của ứng dụng
PHP là back-end, còn Smarty template là front-end
Hỗ trợ cho PHP chứ không thay thế PHP
Giúp cho lập trình viên và nhà thiết kể có thể nhanh chóng triển khai/ phát triền ứng dụng
Dễ thực hiện và duy trì
Dễ tổ chức và quản lý
Cú pháp dễ hiểu, không đòi hỏi phải có kiến thức PHP
Tinh năng đầy đù, dễ dàng mờ rộng tùy nhu cầu của người dùng
Linh hoạt trong việc tùy chỉnh ứng dụng
Bảo mật tốt hom vì tách biệt với PHP
Mã nguồn mở, miễn phí
Giới thiệu
■
□ Lý do chọn Smarty
Smarty thực hiện công việc đưa PHP vào phần hiẻn thị với một cú pháp rất đơn giản: tag-based syntax - cú pháp dựa trên thẻ. Các thẻ chứa nội dung của ứng dụng, thực hiện một cách tách bạch khỏi code PHP.
Không cần phải có kiến thức về PHP cũng có thể quản lý được các template Smarty.
Bên cạnh cú pháp dựa trên thẻ rõ ràng, Smarty còn cung cấp một loạt các công cụ để quàn lý phần hiển thị: bộ nhớ đệm, kế thừa template... Các yêu cầu chức năng và PHP code Smarty đang được sử dụng sẽ đóng một vai trò to lớn trong việc xác định sự phù hợp của Smarty.
Giới thiệu
■
□ Lý do chọn Smarty
Trong nhiều trường hợp, khi việc quản lý template hiệu quả là việc rất quan trọng, hoặc trong trường hựp các nhà thiết kế web (chứ không phải lập trình web) quản lý các template, sức mạnh của việc sử dụng template dựa trên thẻ nhanh chóng được nhận ra.
Nếu các dự án có quy mô template lớn (hàng trăm template) thì việc kế thừa template sẽ giữ cho các mẫu được bảo trì và sắp xếp hợp lý.
Smarty có thêm kỹ thuật (a tag-based syntax + 1-time compile step - một cú pháp thè + một bước biên dịch) giúp dễ dàng khắc phục bằng cách tiết kiệm thời gian bảo dưỡng template.
Giới thiệu
■
□ Cách thức làm việc
•
Smarty biên dịch các bản sao của các template như các script PHP. Bằng cách này ta có các thuận lợi của cả cú pháp thẻ mẫu và tốc độ của PHP.
Biên dịch xảy ra một lần khi mỏi template lần đầu tiên được gọi, và sau đó các phiên bàn đã được biên dịch sẽ được sử dụng từ thời điểm đó. Smarty sẽ thực hiện công việc này, do đó các nhà thiết kế chỉ cần chỉnh sửa các template Smarty mà không cần phải quàn lý các phiên bản đã được biên dịch.
Cách tiếp cận này giúp cho các template dễ dàng duy trì, và vẫn giữ thời gian thực hiện nhanh chóng.
Xây dựng ứng dụng đầu tiên với Smarty
□ Các bước thực hiện
Bước 1: Download thư viện Smarty mới nhất tại địa chỉ: 
Ung_c>jnọ_Sm.yty
Bước 2: Tạo một thư mục để chứa ứng dụng và giải nén Smarty vào
• Bước 3: Xây dựng cây thư mục sau: ■
■ 1 cache
configs
pkj^ns
o temples
o temp<ates_c
s Smarty
a õ lbs
Õ
__	UJ sysplugins
ơ G
M	 LTV Mã nguồn mờ PHP - Module 3	11
MC
VMediaFire
z	II c
Smarty Template
□Cú pháp cơ bản của Smarty
Nội dung
PHP
Smarty
Mở & đóng thè PHP
 hoặc 
0
Ghi chú
//ghi chủ một dòng hoặc /*ghi chủ nhiều dòng
*/
{* ghi chú một dòng*} hoặc {* ghi chủ nhiều dòng
*}
Hiền thị biến
 Ví dụ
{$tên_biến} Ví dụ: {Sname}
Hiền thị các biến $_GET $_POST $_COOKIE $_SERVER
SENV $_SESSION
 <?php echo
S_COOKIE['usemame’];?>
{$smarty.get.page}
{$smarty.post.page}
{$smarty.cookies.usemame}
{$smarty.server.SERVER_NAME}
{$smarty.session.id}
Smarty Template
□Cú pháp cơ bản của Smarty
Nội dung
PHP
Smarty
Hiến thị giá trị một phần tử của màng
Vi dụ:
{$tên_màng[vị_tri]} Ví dụ: í$foo[5]}
Hiển thị giá trị cùa khóa trong màng
Ví dụ:
{$tên_màng.tên_khóa}
Ví dụ:
{Sfoo.bar}
Hiển thị giá trị của phần tử trong màng
Ví dụ
{$tên_mảng.$tẽn_khóa} Ví dụ:
{Síoo.ĩbar}
Smarty Template
□Cú pháp cơ bản của Smarty
Nội dung
PHP
Smarty
Duyệt mảng dùng vòng lặp íoreach
Ví dụ:
<?php
foreach($foo as $bar): ?>
{foreach $tên_mảng as $tên_phần_tử}
{/foreach}
Ví dụ
{foreach $foo as $bar}
{/foreach}
Hoặc
{foreach from=$foo item=bar}
{/foreach}
Smarty Template
□Cú pháp cơ bản của Smarty
Nội dung
PHP
Smarty
In cả khóa và giá trị của phần tử trong mảng
$giá_trị): ?> echo $khóa .	. $giá_trị;
Vi dụ:
 $v): ?>
echo $k.	. $v;
{foreach from=$tên_mảng key=khóa item=giá_trị} {$khóa}: {$giá_trị} {/foreach}
Ví dụ:
{íoreach from=$myArray key=k item=v}
{$k}: {$v}
{/foreach}
Smarty Template
cơ bản của
Nội dung
PHP
Smarty
Duyệt mảng dùng vòng lặp for
<?php for($i=start; $i<end;
$i+=step_number): echo $i;
endfor; ?>
Ví dụ
<?php for($x=0; $x<20;
$x+=2):
echo $x+1;
endfor; ?>
{for $i = start to end step step number}
{$i}
{/for}
Ví dụ
{for $x = 1 to 20 step 2}
{$x}
{/for}
Đếm phần tử của mảng
Ví dụ:
{$tên_mảng|@count}
Ví dụ: {$myArray|@count}
Smarty Template
□Cú pháp CO’ bản của Smarty
Nội dung
PHP
Smarty
if
<?php if(isset($foo)) {
}?>
{if isset($foo)}
{/if}
if, elseif
<?php if(isset($name) && $name == 'Blog){
} elseif($name == $foo) {
}■
{if isset(Sname) && $name == 'Blog'}
{elseif $name == $foo}
{/if}
Chèn file
Ví dụ
{include file=‘đường dẩn và tên file'}
Ví dụ:
{include file-header.tpl'}
Smarty Template
□ Định dạng dữ liệu
• Gọi sử dụng các phương thức định dạng dữ liệu hiển thị:
Biến:
Cú pháp: {$tên_biến|tên_định_dạng}
Ví dụ: {$title|upper}: Viết hoa nội dung chứa trong biến $title
• Phương thức cùa Smarty:
Cú pháp: {$smarty.ten_phuong_thuc|tên_định_dạng"}
Vi dụ: {$smarty.now|date_format:"%Y/%m/%d"}: In ngày hiện tại với định dạng năm - tháng - ngày
Chú ý: Khi sử dụng cùng lúc nhiều định dạng thì ngăn cách nhau bằng dấu I
Vi dụ: {$myArray|upper|truncate:20}
CMC
<Mediafire

File đính kèm:

  • docxbai_giang_lap_trinh_vien_ma_nguon_mo_php_module_3_bai_8_smar.docx
  • pdfttth_dh_khtn8_3565_541351.pdf