Этот пост посвящен созданию простейшего приложения с помощью библиотеки Smarty. Язык программирования — PHP.
Сама статья является пошаговым руководством, рассчитанной на новичков-программистов.
Зачем использовать Smarty?
- Отделение логики представления от бизнес-логики (код и дизайн разделены)
- Если использовать PHP с примесью HTML, то будет беспорядок в управлении приложением.
- Не нужны знания PHP в управлении шаблонами smarty.
- Веб-дизайнер и PHP программист могут с легкостью работать вместе и не мешать друг другу. (Особенно хорошо подходит для больших проектов)
В Smarty есть следующие инструменты:
- кэширование данных
- наследование шаблонов
- функциональная песочница
Где найти?
Скачать архив можно с официального сайта
Как установить?
Распаковать скачанный smarty файл в вашу папку, где находится приложение.
Синтаксис в smarty
В файле index.php (В корневой папке вашего приложения)
a) Включите класс smarty.
1 |
require('libs/Smarty.class.php'); |
b) Создайте объект этого класса
1 |
$smarty = new Smarty; |
c) Определите переменные
1 |
$smarty->assign("var_name", "Smarty"); |
Где:
“var_name
” используется в шаблоне smarty (файл .tpl)
“Smarty
” само значение
Как добавить стили и Javascript файлы в шаблоны (файлы .tpl)
1 2 3 4 5 6 7 8 |
{literal} <link rel="stylesheet" href="css/style.css" type="text/css"> <script> function display(){ document.write(“Welcome to smarty”); } </script> {/literal} |
Структура управления в Smarty
Условия
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
{if (condition)} ----- statements ---- {/if} {if (condition)} ----- statements ---- {else} ----- statements ---- {/if} {if (condition)} ----- statements ---- {elseif (condition)} ----- statements ---- {/if} {/if} |
в условиях: “eq” это “=”, “neq” это “!=”
Циклы
1 2 3 |
{section name=i loop=$ptquestionary} {$ptquestionary[i]} {/section} |
Разработка простейшего приложения с помощью Smarty: Процесс регистрации пользователя.
База данных
1 2 3 4 5 6 7 8 |
CREATE TABLE USERS ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY , fullname VARCHAR( 255 ) NOT NULL , user_name VARCHAR( 255 ) NOT NULL , password VARCHAR( 255 ) NOT NULL , created_on TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); |
Config.php
1 2 3 4 5 6 7 8 |
<?php $dbHost = “localhost”; $dbUser = ”username”; $dbPassword=”password”; $dbName=”database”; $con = mysql_connect($dbHost,$dbUser,$dbPassword); $sel = mysql_select_db($dbName,$con) or mysql_error(); ?> |
Index.php
1 2 3 4 5 6 7 8 9 10 |
<?php include(“libs/Smarty.class.php”); include(“config.php”); $smarty = new Smarty; $smarty->debugging = true; $smarty->caching = true; $smarty->cache_lifetime = 120; $smarty->assign("title", "User Registration using Smarty application"); $smarty->display('index.tpl'); ?> |
register.php
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php include("config.php"); if(isset(<strong>$_POST</strong>)) { $query = "INSERT INTO USERS(fullname,user_name,password) VALUES (' ".mysql_escape_string($_POST['fullname'])."', '".mysql_escape_string($_POST['user_name'])."','".md5($_POST['password'])."')"; $result = mysql_query($query); if($result) { echo "<script>window.location='index.php?msg=successfully inserted ';</script>"; } } ?> |
Шаблоны
header.tpl
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<HTML> <HEAD> <TITLE>{$title}</TITLE> {literal} <style type="text/css"> body{ font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#333333; } </style> {/literal} </HEAD> <BODY> |
index.tpl
1 2 3 4 5 6 7 8 9 10 |
{include file="header.tpl" title={$title}} <form method=”post” action=”register.php”> <div> <div>Name : <input type=”text” name=”fullname” id=”fullname”></div> <div>User Name : <input type=”text” name=”user_name” id=”user_name”></div> <div>Password : <input type=”text” name=”password” id=”password”></div> <div><input type=”submit” name=”submit” value=”submit” ></div> </div> </form> {include file="footer.tpl"} |
footer.tpl
1 2 |
</BODY> </HTML> |
Все! Простейшее приложение готово.