Tutoriaisweb.com
ok
Boa Tarde visitante! Hoje é Quarta-feira, 10 de Março de 2010
[ Fechar ]

Indique esta notícia para um amigo, preencha os campos abaixo:













Instalando o Smarty e configurando o ambiente

Rafael Alencar
(822 visita(s))

Categoria >> PHP
30 de Novembro de 2009
Aumentar o tamanho da fonte da notícia Diminuir o tamanho da fonte da notícia Envie esta notícia para um Amigo Imprimir esta matéria

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

XAMMP

NetBeans IDE

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?

Pasta Exemplo

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.

Pasta Libs

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?

Pasta Smarty

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.

Estrutura de Pastas


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

Estrutura de Pastas 2

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.

Pagina HTML

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...

Template Compilado

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!

Mais sobre o autor

Email: rafael_alencar20@hotmail.com

Site: em breve...

Mais matérias do autor

  • Smarty Template Engine – Alguém já ouviu falar?
  • Fatiando um layout
  • Texto estilo MAC
  • Enviando email com PHP - 1ª Parte
  • Scan Lines - Efeito televisão
  • Máscaras - Mask
  • Trabalhando com Actions e Batch
  • Inserindo Marca d agua
  • FIND 2008
  • ComboBox Dinâmico - Básico
  • Entrelaçando letras no Fireworks
  • Criando um simples design de tipográfico
  • Aplicando profundidade
  • Enviando email com PHP - 2ª Parte
  • PHP / MySQL - Parte 01
  • Logo Windows - Edition Brazilian
  • Criando um Avatar
  • Criando uma User Bar
  • Transformando foto em desenho
  • Rasgando tudo !!!
Gostou da Matéria? Então expresse sua opinião crítica ou sugestiva a respeito dela e poste um comentário.








comentários (1)

01° - Comentários  Andre Cuthalion comentou:
14 de Dezembro de 2009
Cara muito bom o tutorial, simples e de fácil entendimento. Parabéns!

Copyright © Artigos e Tutoriais. Todos os direitos reservados
Ativando e Turbinando sua criatividade

Equipe
Artigos e tutoriais