Olá caros internautas e membros da comunidade Artigos & Tutoriais!
Finalmente estou de volta!
Primeiramente, eu gostaria de me desculpar pela grande demora em postar
um novo conteúdo. Para ser sincero, essa demora ocorreu devido aquelas
coisas que acontecem derrepente em nossas vidas as quais exigem dedicar
um certo tempo para elas. Mas agora tudo está resolvido… Queria me
desculpar também por não ser possível trazer-lhes um vídeo explicativo
como prometi na minha primeira postagem: "Smarty Template Engine – Alguém já ouviu falar?"
(recomendo ler antes de prosseguir). E devido a um fator meramente
técnico, trago-lhes na verdade um texto explicativo, detalhado e
ilustrado para mostrar como instalar o Smarty e configurar um ambiente
padrão para usarmos esta poderosa ferramenta de templates. É tudo muito
simples.
IMPORTANTE: Para quem não leu a postagem anterior, recomendo que leia,
pois muita coisa que vou citar daqui em diante já deve ser de
conhecimento de todos que leram a postagem anterior. Então antes de
prosseguir, se você ainda não leu, leia!
Para quem também ainda não fez o download do Smarty acesse o site http://www.smarty.net/download.php e baixe a versão mais atual.
Antes de inicar de fato, um ponto que eu gostaria de esclarecer é
quanto ao uso de ferramentas de desenvolvimento. No meu caso, estou
utilizando um servidor web local, que roda através de um aplicativo
chamado XAMPP e o NetBeans IDE para implementação de código, ambos são
bastante conhecidos. Porém isso é completamente irrelevante, pois a
única exigência para utilizarmos o Smarty é que tenhamos um servidor
web que possua o PHP instalado. Isso obviamente porque o Smarty é uma
ferramenta feita para PHP. Entendido isso, você pode utilizar qualquer
ambiente que tenha o PHP instalado e qualquer editor de texto para
implementar o Smarty.
XAMPP

NetBeans IDE

Continuando...
Eu
baixei aqui a versão 2.6.26 do Smarty, que era a versão mais recente
disponível. Baixei no formato “tar.gz”, pois é mais compactado o
tamanho do arquivo, porem você pode baixar em qualquer formato, fica ao
seu critério.
Para iniciar, a primeira coisa que vamos fazer é
criar uma pasta para nosso exemplo. Vamos criar essa pasta no diretório
raiz (Document Root) do servidor web, que é o diretório onde fica o
conteúdo público, também conhecido como "www" ou "htdocs", depende da
configuração do servidor. No meu caso, eu configurei na minha pasta
local "Sites". Então vamos criar no diretório raiz uma nova pasta e
chamaremos de "aetsmarty". Ok?
Em
seguida, vamos descompactar o arquivo que baixamos e vamos dar uma
olhada no conteúdo dele. Como podem perceber, existe uma série arquivos
e pastas, porém vamos precisar apenas de uma dessas pastas, que é a
pasta "libs". É nela que está todo o núcleo do Smarty, mas se preferir
você pode manter todo o restante do conteúdo, que na verdade possui
textos informativos e alguns exemplos, isso fica ao seu critério também.
Neste
caso, vou utilizar apenas a pasta "libs". Vamos voltar a pasta do nosso
exemplo e vamos copiar a pasta "libs" para dentro dela. Podemos até
renomear a pasta "libs" para facilitar as coisas, então vamos renomear
para "smarty", ok?
Vamos
agora aplicar uma regra que parte do conceito do Smarty, que como eu
citei anteriormente, já deve estar entendido por quem leu a postagem
anterior. Sabemos que o Smarty separa o código PHP das páginas HTML,
criando pelo menos duas camadas na aplicação, essa é a função básica do
Smarty. Então para que isso possa ser aplicado, devemos criar uma pasta
onde ficarão as páginas HTML.
Na pasta do nosso exemplo, vamos
criar uma pasta chamada "templates", é nela que ficarão os arquivos
onde devem conter nossas páginas com código HTML. O Smarty, por padrão
utiliza essa nomeclatura de pasta, mas você pode utilizar outro nome na
pasta e configurar o Smarty para utilizá-la se preferir, mas neste caso
vamos deixar padrão mesmo.
Vamos também criar outra pasta onde
ficarão os templates compilados, ou seja, o resultado do funcionamento
da máquina do Smarty. Repito, isso foi esclarecido na postagem anterior.
Vamos
novamente na pasta do nosso exemplo, vamos criar uma nova pasta e
chamá-la de "templates_c", que também é uma nomeclatura padrão do
Smarty, mas você pode utilizar outro nome se preferir.

Existe
um detalhe importante nesse momento que você deve saber. A máquina do
Smarty cria arquivos compilados dentro dessa pasta "templates_c", então
temos que ter em mente que essa pasta deve possuir atributos com
permissão de escrita para que os arquivos possam ser gerados
corretamente.
Muito bem!
Acabamos de criar a estrutura de
diretórios padrão do Smarty. A partir de agora, vamos implementar e ver
as maravilhas que o Smarty pode fazer!
Na pasta do nosso exemplo, vamos criar um arquivo index.php. É nele onde vamos configurar o Smarty.
Crie um arquivo chamado "index.php" e abra-o.
A primeira coisa que vamos fazer é a inclusão do Smarty.
Vamos
utilizar o "require_once", pois além de evitarmos a tentativa de
repetir a inclusão do Smarty em algum momento da execução do script,
poderá também causar um erro do tipo "Fatal Error" caso não consiga
incluir o Smarty. Isso é apenas por medida de segurança.
Então inclua o Smarty da seguinte forma:
require_once 'smarty/Smarty.class.php';
Lembrando
que o diretório "smarty" é o diretorio onde está o núcleo do Smarty que
copiamos e renomeamos de "libs" para "smarty" e que o arquivo
"Smarty.class.php" é a classe principal do Smarty.
Em
seguida, já podemos instanciar o objeto Smarty. Outro detalhe
importante que deixei claro na postagem anterior: É crucial que você
tenha conhecimento de metodologia orientada a objetos, pois o Smarty
foi desenvolvido nessa metologia, então você precisa saber como
utilizar classes e objetos.
Mas vamos lá, é bem simples. Para instaciar um objeto Smarty faça da seguinte forma:
$smarty = new Smarty();
A partir de agora, você já pode utilizar os métodos e atributos do Smarty.
A
próxima coisa que temos que fazer é configurar os diretórios padrões do
Smarty. São extamente aqueles que criamos para colocarmos os arquivos
dos templates, conhecidos também como modelos HTML, e os arquivos de
templates compilados.
É simples, através do obejto smarty atribua os valores aos seguintes atributos:
$smarty->template_dir = 'templates/';
$smarty->compile_dir = 'templates_c/';
Basicamente,
a configuração do Smarty é apenas isso. Existem algumas configurações
mais avançadas, mas nesse momento precisamos apenas entender isso.
Agora já podemos mostrar na prática o funcionamento da máquina do Smarty.
Vamos lá...
Primeiro,
vamos cirar nosso modelo HTML ou template. Vamos criar um novo arquivo
dentro da pasta "templates". Por questão de bom senso utilizamos o
mesmo nome do arquivo que está o código PHP para o nome do arquivo do
modelo HTML, porem isso não é obrigatório. No nosso caso, o nosso
arquivo PHP se chama "index.php", então vamos criar o nosso modelo com
o nome "index.tpl".
Opa! Uma dúvida!
Por que a extensão do arquivo do modelo é ".tpl"?
A
resposta é simples. Primeiro, é um padrão do Smarty (que pode ser
configurado) e segundo o arquivo .tpl é apenas um modelo, não é o
arquivo que será acessdo através do browser. O que é acessado é o
resultado da junção do arquivo .php com o arquivo .tpl que é feita pela
máquina do Smarty, gerando um novo arquivo .php. E onde esse arquivo
fica? Fica na pasta de templates compilados! Isso mesmo.
DICA:
Você pode configurar seu editor de texto para associar os arquivos .tpl
aos arquivos .html, fazendo com que ao editar um arquivo .tpl seja o
mesmo que editar um arquivo .html.
Então vamos cirar nosso arquivo de modelo HTML (template).
Vejamos que ele possui apenas tags HTML.
Bastante simples!
Então temos os seguintes arquivos:
index.php
index.tpl
Vamos finalmente colcoar a máquina do Smarty em ação!
Voltando para nosso "index.php" criaremos algumas variáveis:
$var1 = 'Artigos & Tutoriais';
$var2 = 'Smarty Template Engine';
$var3 = 'Desde que conheci o Smarty, ele simplesmente facilitou muito a minha vida!';
Muito bem, criamos três variáveis do tipo string*. E agora?
Agora
vamos conhecer o método mais utilizado no Smarty, que se chama
"assign()". Esse método é responsável por fazer com que suas variáveis
criadas no código PHP sejam acessadas pelos modelos HTML.
*O
método assign() suporta todos os tipos de variáveis tais como: strings,
numéricos, arrays e objetos. Falarei mais sobre isso em outro momento,
mas saiba disso diante mão.
Bom, o método assign() possui
basicamente dois parâmetros: o primeiro é o nome da variável que você
vai nomear para que possa ser acessado pelo template, e o segundo é
exatamente o valor que essa variável vai receber.
Então na prática funciona assim:
$smarty->assign('title', $var1);
$smarty->assign('h1', $var2);
$smarty->assign('p', $var3);
Muito bem!
Teoricamente,
podemos acessar no template as variáveis que criamos no arquivo PHP
através das variáveis 'title', 'h1' e 'p'. Digo teoricamente porque
ainda falta utilizarmos o método mais importante do Smarty, que faz
extamente com que a máquina do Smarty funcione, ou seja, é como se
fosse um 'Start'!
E qual é esse método?
Ele se chama "display()".
Ele
faz apenas uma coisa, informa para a máquina do Smarty qual o template
ele deve compilar o código que implementamos no arquivo PHP.
Na prática usamos o método display() da seguinte forma:
$smarty->display('index.tpl');
Notem
que passamos um parâmetro no método display() que é exatamente o nome
do arquivo do modelo HTML que queremos que a máquina do Smarty utilize.
Um detalhe importante: O método display() deve ser invocado
sempre ao final do seu código PHP, pois como eu citei anteriormente,
ele quem é responsável por dar o "start" na máquina do Smarty e sem ele
nada funciona.
Muito bem, não há mais nada para fazer no nosso
arquivo PHP nesse momento, pois nos resta apenas implementar nossas
variáveis no nosso arquivo .tpl.
Então vamos lá!
Abra o arquivo index.tpl.
Lembramos que nele temos apenas tags HTML, correto?
Muito bem, e como acessamos nossas variáveis criadas no arquivo index.php?
Muito simples pessoal...
Basta fazer o seguinte:
{$title}
{$h1}
{$p}
Isso mesmo! Acessamos as variáveis utilizando chaves e nosso velho e conhecido dóllar.
A utilização de chaves faz parte da sintaxe do Smarty nos templates. Na verdade as chaves são os delimitadores do Smarty.
Por exemplo, os arquivos que contem código PHP começam com as tags "<?php" e terminam com "?>", não é?
O
Smarty é da mesma forma, iniciando com "{" e terminando com "}", isso
quer dizer que quando utilzamos chaves nos templates, é esperado que
seja implementado algum código do Smarty e devemos terminar fechando
com "}".
No nosso caso, fizemos uma coisa simples, apenas imprimimos na tela o valor das variáveis, nada muito complicado.
E
apenas mais um detalhe... Esses delimitadores podem ser modificados
através da configuração do Smarty, mas por padrão utizamos as chaves
mesmo.
Notem que a sintaxe do Smarty é semelhante a sintaxe do
HTML, onde a forma como imprimimos as nossas variáveis lembram as tags
do HTML. Isso porque o Smarty foi desenvolvido exatamente pensando
nisso. Pois lembrem-se do que eu citei na postagem anterior, que o
Smarty separa as funções do codificador PHP e do Webdesigner, então
isso facilita (e muito) a leitura do código HTML pelo Webdesigner e
torna todo o código mais limpo e organizado.
Para visualizarmos
nossa página acessamos através do browser o “index.php”, pois é nele
que estão os métodos responsáveis por gerar o arquivo real utilizando o
modelo HTML o qual é acessado pelo browser, que é o template compilado.
E
por fim, quero apenas mostrar os templates compilados. Esse sim pode
trazer recordações a muitos que não conheciam o Smarty, pois esse
arquivo compilado é o resultado da junção do arquivo PHP com o arquivo
tpl e é o arquivo que é acessado pelo browser. Voce pode ver na pasta
"templates_c" o nosso template compilado. No nosso caso, o resultado do
código ainda é algo legível, mas quando tivermos mais adiante no nosso
conteúdo, você irá se surpreender. É uma coisa impressionante...
Bom,
vimos então na prática o funcionamento de toda aquela teoria que
comentei na postagem anterior, sobre separação de código, pelo menos 2
camadas distintas na aplicação, legibilidade de código... não é?
Garanto que tem muito coisa legal por vir... :D
Bom... é isso! Espero que tenham entendido tudo.
Deixei
de citar alguns detalhes para não prolongar tanto essa explicação, mas
estou disponível para tirar qualquer dúvida ou esclarecimento. Na
verdade, no decorrer de todo o conteúdo vou esclarecendo todos esses
detalhes os quais eu deixo de citar num primeiro momento. Ok?
Então é isso pessoal!
Leiam e releiam, testem e retestem, estudem, pesquisem...
Pois só assim vocês descobrirão o verdadeiro poder do Smarty!
Na próxima postagem, vou preparar um material mais interessante para continuarmos nosso conteúdo sobre Smarty, ok?
Grande abraço e até a próxima!
Copyright © Artigos e Tutoriais. Todos os direitos reservados
Ativando e Turbinando sua criatividade