Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

Quick Install

This is a simple guide to get Smarty setup and running quickly. The online documentation includes a very thorough explanation of a Smarty installation. This guide is meant to be a quick and to-the-point way of getting Smarty working, and nothing more. The guide assumes you are familiar with the Linux system environment. Windows users will need to make file permission adjustments where necessary, or find a suitable hosting provider.

Install Library Files

Copy the Smarty library files to your system. In our example, we place them in /usr/local/lib/php/Smarty/. If you are using FTP/sFTP for server access, unzip the Smarty files locally and upload them to the proper directory.

command line

$> cd YOUR_DOWNLOAD_DIR
$> gtar -zxvf Smarty-3.0.tar.gz
$> mkdir /usr/local/lib/php/Smarty
$> cp -r Smarty-3.0/libs/* /usr/local/lib/php/Smarty

You should now have the following file structure:

file structure

/usr/local/lib/php/Smarty/
    debug.tpl
    plugins/
    Smarty.class.php
    sysplugins/

Setup Directories

You will need four directories setup for Smarty to work. These files are for templates, compiled templates, cached templates and config files. You may or may not use caching or config files, but it is a good idea to set them up anyways. It is also recommended to place them outside of the web server document root. The web server PHP user will need write access to the cache and compile directories as well.

In our example, the document root is /web/www.example.com/docs and the web server username is "nobody". We will keep our Smarty files under /web/www.example.com/smarty/. If you are using FTP/sFTP, your FTP software should help you with setting the file permissions. 775 means user/group = read/write, other = read.

command line

$> cd /web/www.example.com
$> mkdir smarty
$> mkdir smarty/templates
$> mkdir smarty/templates_c
$> mkdir smarty/cache
$> mkdir smarty/configs
$> chown nobody:nobody smarty/templates_c
$> chown nobody:nobody smarty/cache
$> chmod 775 smarty/templates_c
$> chmod 775 smarty/cache

Configure Scripts

Now we setup our application in the document root:

command line

$> cd /web/www.example.com/docs
$> mkdir myapp
$> cd myapp
$> vi index.php

Edit the index.php file to look like the following:

PHP

<?php

// put full path to Smarty.class.php
require('/usr/local/lib/php/Smarty/Smarty.class.php');
$smarty = new Smarty();

$smarty->setTemplateDir('/web/www.example.com/smarty/templates');
$smarty->setCompileDir('/web/www.example.com/smarty/templates_c');
$smarty->setCacheDir('/web/www.example.com/smarty/cache');
$smarty->setConfigDir('/web/www.example.com/smarty/configs');

$smarty->assign('name', 'Ned');
$smarty->display('index.tpl');

?>

Create Template

command line

$> nano /web/www.example.com/smarty/templates/index.tpl

Edit the index.tpl file with the following:

index.tpl

<html>
  <head>
    <title>Smarty</title>
  </head>
  <body>
    Hello, {$name}!
  </body>
</html>

Now go to your new application through the web browser, http://www.example.com/myapp/index.php in our example. You should see the text "Hello Ned!" in your browser.

If you have any problems, you may want to run the Smarty Test Utility to be certain all files and folders are in place and have the correct permissions.

PHP

$smarty->testInstall();

Once you get things working, you can continue on to the Crash Course to learn a few more simple things, or on to the documentation to learn it all.