Category Archives: PHP-Smarty

PHP-Smarty – Templates dinâmicos com Smarty

Olá amigos,
aqui vou mostrar algumas coisas sobre o Smarty e como utiliza-lo para a criação de um projeto de template dinâmico utilizando PHP para popular suas variáveis. Com ele é possível criar programas PHP com a metodologia MVC, onde temos o Model (Template), View (Visualização dos dados) e o Controller (Que a grosso modo busca os dados do banco). Temos a regra de negócio do Controller, ou seja, os selects do banco estão no controller. Vamos lá?

“O Smarty é um sistema de templates para PHP. Mais especificamente, ele fornece uma maneira fácil de controlar a separação da aplicação lógica e o conteúdo de sua apresentação. Isto é melhor descrito em uma situação onde o programador da aplicação e o designer do template executam diferentes funções, ou na maioria dos casos não são a mesma pessoa.” Smart.net

1. Criando o seu primeiro template.
- Vamos criar um arquivo chamado config.php – É aqui que a gente vai inicializar toda a configuração basica do Smarty. O procedimento aqui é configurar as variáveis de localização do seu Smarty e fazer um extends. Um passo atrás, você deve criar a estrutura de diretórios do Smart, como na imagem abaixo:

<?php
// Carregando, por default a class principal do Smarty.
require('Smarty.class.php');

class Smarty_Ext extends Smarty {

    function Smarty_Ext()
    {

        // Inicializando (construindo) as classes do Smarty
        // É aqui que temos a localização das variáveis.

        $this->Smarty();
        $this->template_dir = '/minha_aplicacao/templates/';
        $this->compile_dir  = '/minha_aplicacao/templates_c/';
        $this->config_dir   = '/minha_aplicacao/configs/';
        $this->cache_dir    = '/minha_aplicacao/cache/';
        $this->caching = true;
        $this->assign('app_name', 'Minha Aplicação!');
        $this->left_delimiter  = '{{';
        $this->right_delimiter = '}}';
    }
}
?>

Agora vamos dar continuidade, vamos criar o documento que faz a interação dessas informações:

Chame-o de visualizar.php

// As nossas configurações pre-definidas do Smart.
require_once("config.php");
// Inicializando a nossa Classe Extendida
$smarty = new Smarty_Ext; // Ou new $Smarty se tiver config no server.
// Criando a associação na variável nome
// Com o valor "Meu nome!!!".
$smarty->assign('nome','Meu nome!!!');
// Aqui é o pulo do gato!
// Estamos realizando a ligação entre o Controller e o View.
$smarty->display('template.tpl');

Vamos agora criar o nosso template propriamente dito, chamado de template.tpl que será salvo no diretório templates.

<html>
<head>
<title>Nosso template - {{$nome}}</title>
</head>
<body>
{{$nome}}

</body> </head>

Pronto, agora você poderá visualizar o seu arquivo visualizar.php e ver o resultado!!! :-) Um abraço a todos, e até a próxima!!!! Sugestões e correções são muito bem vindas!!!

Léo

PS: Veja funcionando aqui!! abs