Smarty PHP, pra que serve e como iniciar o uso

Breve apresentação do smarty, tecnologia maravilhosa que permite ao programador PHP trabalhar em camadas sem grandes dificuldades. A classe Smarty na verdade é um compilador PHP para ajudar na separação do seu código em camadas. No artigo passado eu expliquei de forma básica como é feita a separação. Agora vamos ir um passo além, usando este facilitador magnífico para separar nossos códigos.

Por | @cristianogomes Programação
A classe Smarty na verdade é um compilador PHP para ajudar na separação do seu código em camadas.
No artigo passado eu expliquei de forma básica como é feita a separação. Agora vamos ir um passo além, usando este facilitador magnífico para separar nossos códigos.

Desvantagem:
Com o smarty temos que trabalhar da forma DELE, ou seja, com a estrutura de pastas que ele quer que usemos (pelo menos por enquanto). Claro que á como personalizar tudo.

Primeiramente, devemos baixar o dito cujo:
http://www.smarty.net/download.php

Até o momento da escrita deste artigo, a última versão era a 2.6.25

Agora, criaremos uma pasta nova em nosso servidor para trabalhar, batizarei esta pasta como Smarty, ficando assim:

HTTP://localhost/smarty


Em qualquer lugar no seu computador, descompacte o zip que você baixou, dentro desta pasta descompactada copie toda a pasta LIBS para a pasta Smarty que criamos no servidor ficando assim:

HTTP://localhost/smarty/libs


Ótimo, agora vamos criar as seguintes pastas dentro da pasta Smarty:
  • Configs
  • Class
  • Templates
  • Templates_c

Ficando assim:
Dentro da pasta templates, iremos colocar nossos arquivos .html com suas imagens e tudo mais que ela precise.
Lembrando de usar sempre o método de inclusão SITE_ROOT na hora de invocar arquivos de imagens estilos e tudo mais e não o método relativo.

Quero dizer o seguinte, ao inserir uma imagem não use o método relativo:
Smarty PHP, pra que serve e como iniciar o uso


Use o método SITE_ROOT:
Smarty PHP, pra que serve e como iniciar o uso


Considerando que a pasta Smarty é o nosso SITE_ROOT neste caso.
Para quem utiliza o dreamweaver, na hora de criar um novo site marque a opção “site root”.


Obs.: Não esqueça de preencher o campo HTTP address com o caminho até a nossa pasta raiz:

HTTP://localhost/smarty


Motivo: O smarty irá carregar seu arquivo html de outra pasta (templates_c) e se caso usarmos o link de forma relativa ao documento então teremos vários erros no Smarty.

Bom, e agora?
Agora temos a seguinte divisão:

  • Smarty
    • configs
      libs
      templates
      templates_c



Dentro da pasta raiz, ficarão nossos arquivos codeBehind, ou seja, os arquivos .php com suas programações, e dentro da pasta templates ficarão os arquivos de visualização do site, por exemplo, eu criei um arquivo chamado index.html na pasta template, dentro dele coloquei o seguinte código:





-{$txtTituloPagina}-



-{$txtTituloDocumento}-



-{$txtBemVindo}-




Reparem os delimitadores -{}- ao invés do

Só isso, agora voltamos à pasta raiz onde criaremos o arquivo index.php e colocaremos o seguinte código:



require 'libs/Smarty.class.php';

$smarty = new Smarty;
$smarty->left_delimiter = "-{";
$smarty->right_delimiter = "}-";
$smarty->compile_check = true;

$smarty->assign("txtTituloPagina", "Oficina da net - Teste com Smarty");
$smarty->assign("txtTituloDocumento", "Aprendendo a configurar o Smarty");
$smarty->assign("txtBemVindo", "Olá, bem vindo cidadão!");

$smarty->display('index.html');


Explicando:
Primeiramente incluímos o arquivo Smarty.

Em seguida, alteramos algumas configurações padrão do Smarty, como os delimitadores, reparem que na página HTML eu delimitei as variáveis com um -{}-, e o padrão do Smarty é {}, fiz isso, pois quando utilizamos CSS (e usamos isso sempre) nós delimitamos as regras também com {}.

Em seguida ativei o compile_check do Smarty, isso força o Smarty a sempre re-compilar todas os arquivos envolvidos em nossa página atual, ele verifica se houve alteração na programação re-compila, enquanto nosso trabalho estiver no ambiente de desenvolvimento, é aconselhável deixar esta opção ativa, a não ser que em cada teste você prefira ir na pasta templates_c e apagar tudo lá de dentro.

Depois disso, eu apenas usei o $Smarty->assign() para atribuir as variáveis que será expostas na página HTML lembrando que a síntese sempre é:

$Smarty->assign (“NOME_DA_VARIAVEL_SEM_O_$”, “VALOR DA VARIAVEL”);
É isso galera, irei disponibilizar arquivos de exemplo para estudo dos interessados, lembrando que você não precisa ser fera em PHP OOP pois só irá usar o OOP na hora de criar as variáveis de visualização o resto todo pode ser feito em estrutural normalmente.

Razões para usar o Smarty:
  • Programação separada do design (completamente)


Facilidade para debuggin:
  • Basta ativar a opção:  $Smarty->debugging = true;
  • Para que toda vez que executar a página o Smarty abra um popup contendo todas as variáveis e seus valores.
  • Inicialização nos padrões de camadas MCV, tendo sempre em vista, a aprendizagem em padronização de desenvolvimento para quem quer trabalhar em empresas de soluções web e não apenas como freela.


Existem mais vantagens é que estou sem tempo agora.

Para mais informações a documentação do smarty está em portugues aqui

Abraço a todos qualquer dúvida post, para quem já conhece o Smarty e acha que ocultei alguma coisa básica que deveria ser mostrada da um toque, ninguém é perfeito. Smarty PHP, pra que serve e como iniciar o uso

Mais sobre: smarty php camadas
Share Tweet
Recomendado
Comentários
Carregar comentários
Destaquesver tudo