Khác biệt giữa bản sửa đổi của “Smarty”

Nội dung được xóa Nội dung được thêm vào
Tính năng gợi ý liên kết: 3 liên kết được thêm.
Không có tóm lược sửa đổi
 
(Không hiển thị 13 phiên bản của 6 người dùng ở giữa)
Dòng 1:
{{Không nổi bật|date=tháng 3/2022}}
{{chú thích trong bài}}{{wikify}}
{{Infobox Software
| name = Smarty Templates
| logo = [[Tập tin:smarty-logo.gif]]
| developer = Monte Ohrt, Messju Mohr
| latest_release_version = 34.03.72
| latest_release_date = {{Release date and age|2023|07|19|df=yes}}<ref>{{chú thích web |url=https://github.com/smarty-php/smarty/releases |title=v4.3.2|access-date=2023-09-07}}</ref>
| latest_release_date = 11th Feb 2011
| genre = [[Hệ thống tạo mẫu web]]
| license = [[Giấy phép Công cộng GNU Hạn chế|LGPL]]
| website = [http://www.smarty.net/ www.smarty.net]
}}'''Smarty''' là một hệ thống tạo mẫu web (web template system) được viết bằng ngôn ngữ lập trình [[PHP]], thường được quảng bá như một công cụ phân tách mã nguồn sao cho mỗi phần chỉ phụ trách một vấn đề trong ứng dụng.<ref name="Parr000">{{chú thích sách|title=Enforcing strict model-view separation in template engines|last=Parr|first=Terence John|publisher=Proceedings of the 13th international conference on World Wide Web|year=2004|isbn=1-58113-844-X}}</ref> Hệ thống này cho phép thay đổi phần giao diện (front-end) của một trang web mà không tác động đến phần xử lý dữ liệu (back-end). Điều này giúp giảm thiểu công sức và chi phí cần thiết cho việc bảo trì phần mềm.
}}
 
Smarty sử dụng các thẻ (tag) đặc biệt trong tài liệu có sẵn để tạo nội dung web. Các thẻ này được xử lý và chuyển đổi thành mã khác. Chúng là các chỉ thị đặc biệt cho Smarty và được đặt trong các dấu phân cách mẫu. Các chỉ thị có thể là [[Biến (khoa học máy tính)|biến]] (ký hiệu bằng dấu đô la $), hàm, câu lệnh logic và lệnh vòng lặp. Smarty cho phép lập trình viên PHP tạo ra các hàm tùy chỉnh có thể truy cập thông qua các thẻ Smarty.
'''Smarty''' là một hệ thống tạo mẫu web (web template system) được viết trên nền PHP. Smarty được giới thiệu như là một công cụ 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 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). Các tag này sẽ được xử lý và chèn vào với các code khác nhau.
 
== Ví dụ ==
Các tag này là chỉ thị cho Smarty mà có thể được bao đóng bới tag mở và tag khóa. Những hướng dẫn này có thể là biến, 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 tags
Vì Smarty tách mã PHP ra khỏi HTML, nên thường có hai tệp: một tệp là HTML, được dùng để quản lý phần hiển thị. Trong tệp HTML này, các biến và thẻ Smarty (<syntaxhighlight lang="smarty" inline="">{$title_text|escape} {$body_html}</syntaxhighlight>) được sử dụng và có thể trông như thế này: <syntaxhighlight lang="html+smarty">
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à người thiết kế chính là lá chắn bảo về mã nguồn sau (back-end coding) và người lập trình [[PHP|php]] được bảo vệ bới mã trình diễn.
<!DOCTYPE html>
Smarty hỗ trợ một vài ngôn ngữ lập trình bậc cao, bao gồm:
<html lang="en">
*điều khiển luồng dữ liệu, foreach
<head>
*if, elseif, else
<meta charset="utf-8">
*biến thay đổi
<title>{$title_text|escape}</title>
*Người dùng tạo chức năng
</head>
 
<body> {* This is a little comment that won't be visible in the HTML source *}
Bên cạnh đó, thì một trong những chức năng nổi bật của các Template Engine là hệ thống tạo mẫu cho phép thay đổi từ mẫu tới mẫu.
{$body_html}
Thông thường khi lập trình PHP bạn hay viết lẫn cả phần [[HTML]] với mã lệnh PHP trên một trang. Điều này sẽ dẫn đến rất rối nhất là khi bảo trì. Bạn là người viết ra và cũng là người bảo trì thì không sao nhưng nếu bạn viết ra sau đó người khác bảo trì. Chắc họ nhìn vào code của bạn họ sẽ ngất mất vì quá rối. Mặt khác khi làm nhiều trang web có chức năng như nhau. Chỉ khác giao diện nên nếu lập trình theo kiểu như vậy bạn phải viết lại hoàn toàn. Ngoài ra muốn code được bạn phải chờ người thiết kế giao diện cho bạn sau đó cắt ra file HTML... rồi mới code... Tất cả những điều này sẽ làm giảm năng xuất công việc của bạn đi rất nhiều. Smarty ra đời đã giải quyết được các vấn đề nêu trên. Dưới đây là một số ưu điểm của Smarty:
</body> <!-- this is a little comment that will be seen in the HTML source -->
</html>
</syntaxhighlight>Cách sử dụng mẫu Smarty ở trên trong [[logic nghiệp vụ]] (business logic) có thể như sau:<syntaxhighlight lang="php">
define('SMARTY_DIR', 'smarty-2.6.22/');
require_once(SMARTY_DIR . 'Smarty.class.php');
 
$smarty = new Smarty();
1.Tốc độ load trang rất nhanh (do tạo được cache)
$smarty->template_dir = './templates/';
$smarty->compile_dir = './templates/compile/';
 
$smarty->assign('title_text', 'TITLE: This is the Smarty basic example ...');
2.Code ứng dụng của bạn trở lên trong sáng, mạch lạc và dễ bảo trì hơn rất nhiều (do tách biệt phần code và templates).
$smarty->assign('body_html', '<p>BODY: This is the message set using assign()</p>');
 
$smarty->display('index.tpl');
3.Hiệu quả công việc đạt tối đa (Người thiết kế và người lập trình làm việc hoàn toàn độc lập. Thay đổi giao diện website nhanh chóng...)
</syntaxhighlight>
 
4.Được sử dụng phổ biến (bên Nhật rất ưa chuộng Smarty)
==Tham khảo==
{{tham khảo}}
 
[[Thể loại:Phần mềm tự do được lập trình bằng PHP]]