Your SlideShare is downloading. ×
0
   Diego Tremper
   Zend Certified Engineer
   Entusiasta PHP
   Palestrante
   Estudante
   Cenário
   Solução
   Benefícios
   Smarty Template
       Sintaxe

       Instalação

       Configuração

    ...
   Padrão Espaguete
   Padrão Espaguete
   Padrão Espaguete

      “Qualifica-se de código espaguete um programa de computador
      que não segue as regras da p...
Lógica            Apresentação
• Lógicas de negócio   • Html
• Acesso a dados       • Design
   Torna o código mais legível
   Útil para equipes que possuem designers e
    programadores
   Reduz o esforço utiliz...
   Biblioteca escrita em PHP que possibilita
    fazer a separação entre a lógica de negócio e
    a camada de apresentaç...
   Como funciona?
     O Smarty separa a apresentação em templates

     Templates podem ser organizados de maneira

  ...
   Exemplo
     Index.tpl                         Variáveis
    <html>
    <head>
    <title>{$titulo}</title>
    </hea...
   Exemplo
     Index.php
    <?php

    // . . .
    $smarty->assign(‘nome’, ‘Diego’);
    $smarty->assign(‘titulo’, ‘P...
Variáveis
            <?php /* Smarty version 2.6.20, created on 2008-
            10-14 21:45:22
                 compile...
<?php /* Smarty version 2.6.20, created
on 2008-10-14 21:45:22
     compiled from lista.tpl */ ?>        <html>
<html>    ...
   Sintaxe
     Todas as tags de template do Smarty contém
     delimitadores. Por padrão, estes delimitadores
     são ...
   Comentários
     Os comentários do template ficam entre
     asteriscos dentro de delimitadores
    {* mostra título ...
   Configuração
     Após descompactar os arquivos do Smart
      ▪ Incluir o arquivo principal da biblioteca
      ▪ Cr...
   Configuração
     É necessário dizer onde estarão os diretórios que
     o Smarty utilizará
     // . . .
     $smart...
   Variáveis
     Para utilizar as variáveis dentro do template é
      necessário fazer a atribuição das mesmas
     A...
   Variáveis (cont..)
     require 'Smarty.class.php';

     $smarty = new Smarty;

     $valor = 10;

     $smarty->assi...
   Variáveis (cont..)

     {* exibe uma variável *}
     {$variavel}

     {* exibe o terceiro elemento de uma matriz *}...
   Funções
     Funções são processadas e exibidas colocando-se
     a função e seus atributos entre delimitadores.

   ...
   Funções internas
     Funções internas são parte integral da linguagem
     de template. Você não pode criar funções
...
   Funções internas - foreach
    {* este exemplo irá mostrar todos os valores da matriz
    $custid *}
    {foreach from...
   Funções internas - if
     {if $nome == quot;Diegoquot;}
            Bem vindo {$nome}!
     {elseif $nome == quot;And...
   Funções internas - include
     {* inclue o template cabecalho.tpl *}
     {include file=quot;cabecalho.tplquot;}

   ...
   Funções personalizadas
     O Smarty possui várias funções personalizadas

     que você pode usar em seus templates....
   Funções personalizadas – html_options
    <select name=‚cidades‛>
           {html_options options=$cidades
          ...
   Funções personalizadas – mailto
    {mailto address=quot;eu@exemplo.comquot;}

    OUTPUT:
    <a href=quot;mailto:eu@...
   Modificadores de variáveis
     Permitem a modificação de variáveis, funções ou
     strings
    {* Faz o título fica...
   Modificadores de variáveis (cont…)
     É possível também aninhar modificadores

    {‚Diego‛|cat:‛ Tremper‛|upper}

...
   Modificadores de variáveis (cont…)
     Outros modificadores…
{* Substitui Brasilia por Porto Alegre *}
{‚Em Brasilia...
Demonstração Prática
   Existem alternativas para manter a
    organização em seu código
   Separar a lógica de apresentação da lógica de
   ...
Perguntas?
Obrigado!!!
       Contato: diegotremper@gmail.com
LinkedIn: http://www.linkedin.com/in/diegotremper
       Blog: http://w...
   Smarty: http://www.smarty.net/
   PHP: http://www.php.net
Smarty Template Engine
Upcoming SlideShare
Loading in...5
×

Smarty Template Engine

2,899

Published on

Palestra sobre a utilização de Smarty Template em projetos PHP

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,899
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
91
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Smarty Template Engine"

  1. 1.  Diego Tremper  Zend Certified Engineer  Entusiasta PHP  Palestrante  Estudante
  2. 2.  Cenário  Solução  Benefícios  Smarty Template  Sintaxe  Instalação  Configuração  Variáveis  Modificadores de Variáveis  Funções  Demonstração prática  Conclusão
  3. 3.  Padrão Espaguete
  4. 4.  Padrão Espaguete
  5. 5.  Padrão Espaguete “Qualifica-se de código espaguete um programa de computador que não segue as regras da programação estruturada e abusa de desvios, condicionais ou não, o que torna a leitura do mesmo por seres humanos bem difícil.” Wikipédia: http://pt.wikipedia.org/wiki/Código_espaguete
  6. 6. Lógica Apresentação • Lógicas de negócio • Html • Acesso a dados • Design
  7. 7.  Torna o código mais legível  Útil para equipes que possuem designers e programadores  Reduz o esforço utilizado para fazer alterações no código (tanto na apresentação quanto na lógica)  Torna mais fácil o reaproveitamento de código
  8. 8.  Biblioteca escrita em PHP que possibilita fazer a separação entre a lógica de negócio e a camada de apresentação
  9. 9.  Como funciona?  O Smarty separa a apresentação em templates  Templates podem ser organizados de maneira hierárquica ▪ um template pode incluir outro  O Smarty “mistura” as variáveis da aplicação no template , gerando o código para a visualização
  10. 10.  Exemplo  Index.tpl Variáveis <html> <head> <title>{$titulo}</title> </head> <body> <h1>Seja bem vindo {$nome}!</h1> </body> </html>
  11. 11.  Exemplo  Index.php <?php // . . . $smarty->assign(‘nome’, ‘Diego’); $smarty->assign(‘titulo’, ‘Página de boas vindas’); $smarty->display(‘index.tpl’); // . . .
  12. 12. Variáveis <?php /* Smarty version 2.6.20, created on 2008- 10-14 21:45:22 compiled from lista.tpl */ ?> <html> <head> <title><?php echo $this->_tpl_vars['titulo']; ?> </title> Smarty </head> <body> <h1>Seja bem vindo <?php echo $this- >_tpl_vars['nome']; ?>!</h1> </body> </html> Index.tpl Compilação
  13. 13. <?php /* Smarty version 2.6.20, created on 2008-10-14 21:45:22 compiled from lista.tpl */ ?> <html> <html> <head> <head> <title>Página de boas <title><?php echo $this- vindas</title> >_tpl_vars['titulo']; ?> </head> </title> <body> </head> <h1>Seja bem vindo Diego!</h1> <body> </body> <h1>Seja bem vindo <?php echo $this- </html> >_tpl_vars['nome']; ?>!</h1> </body> Após execução do PHP </html> Código gerado pelo Smarty
  14. 14.  Sintaxe  Todas as tags de template do Smarty contém delimitadores. Por padrão, estes delimitadores são { e }, mas eles podem ser alterados. Tags Smarty Tags HTML <html> <head> <title>{$titulo}</title> </head> <body> <h1>Seja bem vindo {$nome}!</h1> </body> </html>
  15. 15.  Comentários  Os comentários do template ficam entre asteriscos dentro de delimitadores {* mostra título da página *} <title>{$titulo}</title> <boby> {* exibe combobox *} <select> <option>Selecione ..</option> </select> </body> </html>
  16. 16.  Configuração  Após descompactar os arquivos do Smart ▪ Incluir o arquivo principal da biblioteca ▪ Criar uma instância da classe Smarty require 'Smarty.class.php'; $smarty = new Smarty;
  17. 17.  Configuração  É necessário dizer onde estarão os diretórios que o Smarty utilizará // . . . $smarty->template_dir = '/diretorio/templates/'; $smarty ->compile_dir = '/diretorio/templates_c/'; $smarty ->config_dir = '/diretorio/'; $smarty ->cache_dir = '/diretorio/cache/'; // . . .
  18. 18.  Variáveis  Para utilizar as variáveis dentro do template é necessário fazer a atribuição das mesmas  A atribuição de variáveis pode ser feita através do método Smart::assign() $smarty->assign(‚nome_variavelquot;, $valor);
  19. 19.  Variáveis (cont..) require 'Smarty.class.php'; $smarty = new Smarty; $valor = 10; $smarty->assign(‚nome_variavelquot;, $valor); $smarty->display('index.tpl'); index.tpl O valor da variável é: {$nome_variavel}
  20. 20.  Variáveis (cont..) {* exibe uma variável *} {$variavel} {* exibe o terceiro elemento de uma matriz *} {$matriz[3]} {* exibe o elemento ‚nome‛ de uma matriz *} {$matriz.nome}
  21. 21.  Funções  Funções são processadas e exibidas colocando-se a função e seus atributos entre delimitadores. {* Exemplo *} {nome_funcao atributo1=‚valor 1‛ atributo2=$variavel} {* include template *} {include file=‚cabecalho.tpl‛} {* alterna as cores: branca e cinza *} {cycle values=‚#fff,#e5e5e5‛}
  22. 22.  Funções internas  Funções internas são parte integral da linguagem de template. Você não pode criar funções personalizadas com o mesmo nome de uma função interna, e também não pode modificar funções internas.  foreach,foreachelse,include,literal,if,elseif,else…
  23. 23.  Funções internas - foreach {* este exemplo irá mostrar todos os valores da matriz $custid *} {foreach from=$nomes_empregados item=nome} Nome: {$nome}<br> {/foreach} Semelhante: foreach ($nomes_empregados as $nome) { echo ‚Nome: ‛ . $nome . ‚<br>‛; }
  24. 24.  Funções internas - if {if $nome == quot;Diegoquot;} Bem vindo {$nome}! {elseif $nome == quot;Andrequot;} Bom dia professor {$nome}! {else} Bom dia senhor {$nome} {/if} {if $nome == quot; Diegoquot; || $nome == quot; Andre quot;} . . . {/if}
  25. 25.  Funções internas - include {* inclue o template cabecalho.tpl *} {include file=quot;cabecalho.tplquot;} {* usando o caminho absoluto *} {include file=quot;file:C:/local/meus/templates/cabecalho.tplquot;}
  26. 26.  Funções personalizadas  O Smarty possui várias funções personalizadas que você pode usar em seus templates.  Estas funções normalmente estão disponíveis dentro do diretório plugins do Smarty  assign, counter,cycle,
  27. 27.  Funções personalizadas – html_options <select name=‚cidades‛> {html_options options=$cidades selected=$cidade_selecionada} </select> OUTPUT: <select name=‚cidades‛> <option value=quot;1000quot;>Alegrete</option> <option value=quot;1001quot;>Canoas</option> <option value=quot;1002quot;>Erechim</option> <option value=quot;1003quot; selected=quot;selectedquot;>Porto Alegre</option> </select>
  28. 28.  Funções personalizadas – mailto {mailto address=quot;eu@exemplo.comquot;} OUTPUT: <a href=quot;mailto:eu@exemplo.comquot;>eu@exemplo.com</a> {mailto address=quot;eu@exemplo.comquot; text=‚contatoquot;} OUTPUT: <a href=quot;mailto:eu@exemplo.comquot;>contato</a>
  29. 29.  Modificadores de variáveis  Permitem a modificação de variáveis, funções ou strings {* Faz o título ficar com letras maiúsculas *} <h2>{$titulo|upper}</h2> <h3>{‚SUBTITULO DA PAGINA‛|lower}</h3> {* Faz com que $topico use somente 40 caracteres, e coloca ... no fim da frase *} Tópico: {$topico|truncate:40:quot;...quot;}
  30. 30.  Modificadores de variáveis (cont…)  É possível também aninhar modificadores {‚Diego‛|cat:‛ Tremper‛|upper} OUTPUT: DIEGO TREMPER
  31. 31.  Modificadores de variáveis (cont…)  Outros modificadores… {* Substitui Brasilia por Porto Alegre *} {‚Em Brasilia 19 horas‛|replace:‛Brasilia‛:‛Porto Alegre‚} {* Ex.: Em Porto Alegre 19 horas *} {* Adiciona espaços entre cada caractere *} {‚Em Brasilia 19 horas‛|spacify} {* Ex.: E m B r a s i l i a 1 9 h o r a s*}
  32. 32. Demonstração Prática
  33. 33.  Existem alternativas para manter a organização em seu código  Separar a lógica de apresentação da lógica de negócio é uma das mais básicas  Não é fácil! Mas com o tempo acaba virando um costume
  34. 34. Perguntas?
  35. 35. Obrigado!!! Contato: diegotremper@gmail.com LinkedIn: http://www.linkedin.com/in/diegotremper Blog: http://www.diegotremper.com
  36. 36.  Smarty: http://www.smarty.net/  PHP: http://www.php.net
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×