PhpRiot
Become Zend Certified

Prepare for the ZCE exam using our quizzes (web or iPad/iPhone). More info...


When you're ready get 7.5% off your exam voucher using voucher CJQNOV23 at the Zend Store

Extended Setup

This is a continuation of the basic installation, please read that first!

A slightly more flexible way to setup Smarty is to extend the class and initialize your Smarty environment. So instead of repeatedly setting directory paths, assigning the same vars, etc., we can do that in one place.

Lets create a new directory /php/includes/guestbook/ and make a new file called setup.php. In our example environment, /php/includes is in our include_path. Be sure you set this up too, or use absolute file paths.

Example 10. /php/includes/guestbook/setup.php



<?php

// load Smarty library
require('Smarty.class.php');

// The setup.php file is a good place to load
// required application library files, and you
// can do that right here. An example:
// require('guestbook/guestbook.lib.php');

class Smarty_GuestBook extends Smarty {

   function 
__construct()
   {

        
// Class Constructor.
        // These automatically get set with each new instance.

        
parent::__construct();

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

        
$this->caching Smarty::CACHING_LIFETIME_CURRENT;
        
$this->assign('app_name''Guest Book');
   }

}
?>

    

Now lets alter the index.php file to use setup.php:

Example 11. /web/www.example.com/guestbook/htdocs/index.php



<?php

require('guestbook/setup.php');

$smarty = new Smarty_GuestBook();

$smarty->assign('name','Ned');

$smarty->display('index.tpl');
?>

   

Now you see it is quite simple to bring up an instance of Smarty, just use Smarty_GuestBook() which automatically initializes everything for our application.

Smarty Template Engine