PHP é à quinta-feira – Iniciação ao Smarty
Date : 30 de Julho de 2009 Por R. Santos para o Pplware
Como já tínhamos visto anteriormente, o Smarty é um sistema de templates para PHP. Mais especificamente, fornece uma forma fácil de gerir a programação da aplicação web e o conteúdo da sua apresentação (layout).
Geralmente utilizado numa situação onde o programador da aplicação e o designer do layout executam tarefas diferentes, ou na maioria dos casos não são a mesma pessoa.
Pois bem, o Smarty traz a felicidade dos programadores e designers. Estes têm diferentes tarefas mas podem ser colaboradas de forma eficaz.
Como por exemplo:
As tarefas do programador:
Tratar da lógica da aplicação web.
Certificar-se que tudo está funcional.
Não se preocupar com o layout.
As tarefas dos designers:
Tratar do HTML sem afectar o programador.
Fazer alterações no design sem pedir permissão ao programador.
Não se preocupar com a lógica da aplicação web.
Instalação
Fazer o download através do website oficial do Smarty.
Extrair o ficheiro comprimido e enviar para o servidor através de SSH ou FTP.
Iremos precisar de criar mais dois directórios para meter o Smarty a funcionar. Irá ser lá que
serão guardados os ficheiros (.tpl) do layout e os templates compilados pelo Smarty.
Criar um directório com o nome templates e outro chamado templates_c (podem ser outros, só terá que alterar nas configurações).
Se estiver em ambientes que não Windows deverá definir o chmod destes directórios para 775.
Só iremos precisar dos directórios libs, templates e templates_c. Todo o resto poderá eliminar.
Primeiro Smarty PHP
Em primeiro lugar temos de importar a biblioteca.
require 'libs/Smarty.class.php';
Agora precisamos de iniciar o objecto para o podermos utilizar.
$smarty = new Smarty();
Com a função assign(); vamos atribuir algumas variáveis para a nossa página.
$smarty->assign('Charset', 'iso-8859-1');
$smarty->assign('TituloPagina', 'O Meu Primeiro Smarty');
$smarty->assign('Titulo', 'Olá');
$smarty->assign('Texto', 'Este é o meu primeiro Smarty :)');
$smarty->display('index.tpl');
HTML
Como podemos ver, todas as variáveis definidas anteriormente no PHP são representadas no Smarty por {$variavel}, tal como todas as tags de template do Smarty contêm delimitadores.
Por padrão, estes delimitadores são { e }, mas eles podem ser alterados.
http://www.pplware.com | Pplware 2 / 5
Fácil não é? Acabamos de fazer o nosso primeiro Smarty :)
O que o Smarty vai fazer é analisar o seu template e a partir deste vai criar um ficheiro PHP para ser interpretado pelo interpretador. Quando a página é visualizada o Smarty lê esse ficheiro em vez do template, que poupa o trabalho de ter que analisar o template outra vez.
Sintaxe Básica Comentários {* Exemplo *}
Importar
{include file="cabecalho.tpl"}
xyz
{include="baixo.tpl"}
Condições {if condição}
x {else}
y {/if}
Loops
For, Foreach
{section name=x loop=$y}
{$y[x]}
{$z[x]}
{sectionlese}
Opps {/section}
{foreach from=$x item=y}
{$x}
{foreachelse}
Opps {/foreach}
Operações {$x + $y}
{$x - $y}
{$x * $y}
{$x / $y}
Arrays PHP
$smarty->assign('Utilizador',array('Id' => 15482022, 'PrimeiroNome' => 'Alberto',
'UltimoNome' => 'Milagre',
'Email' => 'emilagre@tudooquepuderes', 'Telefone' => '910000000'));
Smarty
{$Utilizador.Id}
{$Utilizador.PrimeiroNome}
{$Utilizador.UltimoNome}
{$Utilizador.Email}
{$Utilizador.Telefone}
Objectos PHP
class O_Meu_Notebook {
public $Processador = 'Intel Core2 Duo P9550 - 2,66GHz';
public $Memoria = 4096;
http://www.pplware.com | Pplware 4 / 5
public $DiscoRigido = 500;
public $PlacaGrafica = 'ATI Mobility Radeon HD 4650 - 1GB';
public $SistemaOperativo = 'Windows Vista Home Premium';
}
$objecto = New O_Meu_Notebook;
$smarty->assign('Notebook', $objecto);
Smarty
{$objecto->Processador}
{$objecto->Memoria} MB {$objecto->DiscoRigido} GB {$objecto->PlacaGrafica}
{$objecto->SistemaOperativo}
E assim dou por terminado esta iniciação.
Como de costume, qualquer dúvida e/ou sugestão podem postar nos comentários, no Fórum Pplware ou enviar-me um email para r.santos[at]live[dot]co[dot]uk.