Estendendo a configuração

Esta é uma continuação da instalação básica, por favor leia a instalação básica primeiro!

Uma forma um pouco mais flexível de configurar o Smarty é estender a classe e inicializar seu ambiente de Smarty. Então, ao invés de configurar caminhos de diretórios repetidamente, preencher as mesmas variáveis, etc., nós podemos fazer isso para facilitar. Vamos criar um novo diretório "/php/includes/guestbook/" e criar um novo arquivo chamado "setup.php". Em nosso ambiente de exemplo, "/php/includes" está em nosso include_path. Certifique-se de que você também definiu isto, ou use caminhos de arquivos absolutos.

Exemplo 2-10. Editando /php/includes/guestbook/setup.php

// carrega a biblioteca do Smarty require('Smarty.class.php');
// O arquivo setup.php é uma boa forma para carregar
// arquivos de bibliotecas da aplicação exigida, e você pode fazer
// isso corretamente aqui. Um exemplo:
// require('guestbook/guestbook.lib.php');
class Smarty_GuestBook extends Smarty {
 function Smarty_GuestBook() {
 // Construtor da Classe. Estes automaticamente são definidos a cada nova instância.
 $this->Smarty();
 $this->template_dir = '/web/www.mydomain.com/smarty/guestbook/templates/';
 $this->compile_dir = '/web/www.mydomain.com/smarty/guestbook/templates_c/';
 $this->config_dir = '/web/www.mydomain.com/smarty/guestbook/configs/';
 $this->cache_dir = '/web/www.mydomain.com/smarty/guestbook/cache/'; 
 $this->caching = true;
 $this->assign('app_name','Guest Book');
 }
}

Agora vamos alterar o arquivo index.php para usar o setup.php:

Exemplo 2-11. Editando /web/www.mydomain.com/docs/guestbook/index.php

require('guestbook/setup.php');
$smarty = new Smarty_GuestBook;
$smarty->assign('nome','Thomas');
$smarty->display('index.tpl');

Agora você pode ver que é extremamente simples criar uma instância do Smarty, apenas use Smarty_GuestBook que automaticamente inicializa tudo para a nossa aplicação.