Universidade Federal dos Vales
    Jequitinhonha e Mucuri
   Sistemas de Informação


       Apresentação à
      Disciplina de E.W.


    Tema: Smarty
       Lorena C. De Souza
Índice Smarty
1 – Apresentação
      1.1 Templete
      1.2 Classe Templete
      1.3 Classe Templete Smarty
      1.4 Objetivos
      1.5 Visões
2 – Instalação
3 – Sintaxe Básica
4 – Exemplos Práticos
Smarty
●

●

    ●

    ●   Qual a definição de Templete?
●
Smarty
●
    Qual a definição de Templete?

Um documento sem conteúdo, com apenas a apresentação visual
(apenas cabeçalhos por exemplo) e instruções sobre onde e qual
tipo de conteúdo deve entrar a cada parcela da apresentação —
por exemplo conteúdos que podem aparecer no início e conteúdos
que só podem aparecer no final.
●
Smarty

●
●

         THU
Smarty

    Agora qual a definição de Classe Templete?

●
Smarty

    Agora qual a definição de Classe Templete?

 A Classe Templete tem o principal propósito manter o
código HTML em arquivos externos que ficam
completamente livres de código PHP. E dessa forma,
manter a lógica de programação (PHP) separada da
estrutura visual (HTML ou XML, CSS, etc).
●
Smarty

 Com isso, gera duas “extremidades” de
desenvolvimento:
                          Html
● A parte da Visão          Html
                          CSS
                            CSS
                                   PHP
                                    PHP
● A parte dos Controles
Smarty
Sem a Classe Template, o que tem é uma mistura de php, com
html, css e etc.

               <?php

                    echo "<div>
                             <p> Ol&aacute; Mundo!</p>
                        </div>";
               ?>
Smarty
Com a Classe Template, o que tem é uma organização/separação
entre os componentes de desenvolvimento da aplicação web.


<html>                           <?php
    <body>                           require("Template.class.php");
        <p>Olá Mundo!</p>            $tpl = new Template("hello.html");
    </body>                          $tpl->show();
</html>                          ?>
Smarty
Características específicas da Classe templete
Smarty:

 ●   Engine oficializada pela php.net
 ●

 ●   Ele é extremamente rápido.
 ●

 ●   Sem elevadas interpretações de template, compila
     uma vez.
 ●

 ●   Só recompilará os arquivos de template que foram
     alterados.
 ●

 ●   Suporte de caching embutido
 ●


 ●
     Arquitetura de Plugin
Smarty

Vantagens:
  Facilidade pra criação uma vez aprendido;

  Organização;

  Manutenção de código;

  Otimização do desenvolvimento do projeto – dois
ambientes.
Smarty - Instalação

Requisitos:
 Servidor Apache

 PHP

 Biblioteca do Smarty
Smarty - Instalação
Passos:
    Faça o download do Smarty
    Descomprima todas as pastas.

    Verifique uma pasta "demo"

    Prepare de maneira a deixar visível ao www­data
●

●   Dê permissão ao diretório "templates_c".
Smarty - Instalação
Árvore padrão de diretório do Smarty está organizada da seguinte 
●


maneira:
 ● / ­ Na raiz estarão os arquivos de lógica (.PHP).

 ● /configs  ­  Arquivos  de  configuração.  É  possível  setar  por  exemplo, 


   um  título  padrão  para  todo  seu  sistema,  e  utilizá­lo  nos  arquivos  de 
   templete.
 ● /libs ­ Bibliotecas do Smarty, onde também fica localizada a classe 


   principal.
 ● /templetes  ­  Diretório  padrão  para  localização  dos  templetes.  São 


   arquivos de interface com o usuário.
 ● /templetes_c  ­  Diretório  para  cache.  (Deve  estar  com  permissão  de 


   escrita.)
Smarty – Sintaxe
●Todas as tags de template do Smarty contém delimitadores. Por padrão, 
estes delimitadores são { e }, mas eles podem ser alterados.
●

● Para o Smarty, todo o conteúdo fora dos delimitadores é mostrado como 
conteúdo estático, ou inalterável. Quando o Smarty encontra tags de 
template, ele tenta interpretá­las, e então mostra a saída apropriada em 
seu lugar.
Smarty – Sintaxe
●   Comentário
      ●   {* Isto é um comentário *}

●   Função, Variáveis e Atributos
     ● Funções Inernas: {include file=$arquivoInclude}

     ● Funções Inernas: {config_load file="cores.conf"}

     ● Funções Inernas: {if $enfase_nome}

     ● Funções Personalizadas: {html_options}

     ● Funções Personalizadas: {html_select_date display_days=yes}

      ●

●   Escapando de Interpretação do Smarty
      ● {ldelim}$Name | upper{rdelim}
Smarty – Sintaxe
●   Variáveis
     ●

     ●   Variável definida do php: 
              ● {$Nome}




     ●   Variável composta definida do php:
              ● {$Contatos[row].Telefone}

             ●

     ●   Variável de configuração: 
                 <body bgcolor="{#cordefundo}">
                 ●

     ●   Variável reservada: 
               ● $smarty
Smarty – Sintaxe
●   Variável Reservada $smarty
    ●   Essa variável reservada é utilizada para acessar variáveis especiais do 
        template. Como por exemplo: as variáveis request get, post, cookies, 
        server, enviroment e session. Exemplo:
    ●

         ●   Se tem a seguinte URL http://www.domain.com/index.php?page=foo 
             ●

                 ●
Smarty – Sintaxe
●   Variável Reservada $smarty
    ●   Essa variável reservada é utilizada para acessar variáveis especiais do 
        template. Como por exemplo: as variáveis request get, post, cookies, 
        server, enviroment e session. Exemplo:
    ●

         ●   Se tem a seguinte URL http://www.domain.com/index.php?page=foo 
             ●

                 ●   Com {$smarty.get.page} mostra o valor de page da URL;
    ●

                 ●   Para {$smarty.post.page} mostra a variável ”page” de um 
                     formulário. (POST)
    ●

                 ●   Para {$smarty.cookies.username} mostra o valor do cookie 
                     "username.
Smarty – Sintaxe
 Variável Reservada $smarty
●


●

    ●   Para {$smarty.server.SERVER_NAME} mostra a variável do servidor 
        "SERVER_NAME".
●

    ●   Para {$smarty.env.PATH} mostra a variável de ambiente do sistema 
        "PATH".
●

    ●   Para {$smarty.session.id} mostra a variável ”id” de session do php.
Smarty – Sintaxe
Outras sintaxe reservadas do Smarty:
●

●

    ●   {$smarty.now} – retorna o timestamp atual.
    ●

    ●   {$smarty.capture} – captura a saída.
    ●

    ●   {$smarty.template} ­ contém o nome do template atual.
        {$smarty.template}
    ●

    ●   {$smarty.section}, {$smarty.foreach}
    ●

    ●   {$smarty.ldelim} e {$smarty.rdelim}: delimitador esquerdo e direito.
Smarty – Sintaxe
Modificadores de Variáveis
●

    ●   Para aplicá­lo deve usar a seguinte sintaxe: 
               ● Valor  |  modificador

    ●   Por exemplo:
        ●

        ●   {$topico | truncate:40:"..."}         {$articleTitle | capitalize}
        ●

        ●   {$articleTitle | count_characters}    {$articleTitle | cat:" yesterday."}
        ●

        ●
Smarty – Sintaxe
Modificadores de Variáveis
●

    ●   Para aplicá­lo deve usar a seguinte sintaxe: 
               ● Valor  |  modificador

    ●   Por exemplo:
        ●

        ●   {$topico | truncate:40:"..."}         {$articleTitle | capitalize}
        ●

        ●   {$articleTitle | count_characters}    {$articleTitle | cat:" yesterday."}
        ●

        ●   {$smarty.now | date_format:"%H:%M:%S"} 
        ●

        ●   {$articleTitle | replace:"Garden":"Vineyard"}
        ●

        ●   {$articleTitle|count_paragraphs}
Smarty – Sintaxe
●   Caching
            ●   Usado  para  aumentar  a  velocidade  de  chamada  para  display()  ou 
                fetch() salvando isso num arquivo de saída. 
            ●   Pode  fazer  coisas  tremendamente  rápidas,  especialmente  templetes 
                com longo tempo computacional.

            ●   Desde que templetes sejam dinâmicos, é importante ter cuidado com 
                o que você está fazendo cache e por quanto tempo.

            ●   Por  exemplo,  se  você  está  mostrando  a  página  principal  do  seu 
                website  na  qual  as  alterações  de  conteúdo  são  muito  frequentes 
                (hora),  isso  funciona  bem  para  cache  dessa  forma.  Já  um  outro 
                modo, se você está mostrando uma página com um mapa do tempo 
                contendo novas informações por minuto, não faz sentido fazer cache 
                nesta página.
    ●   Caching precisa ser configurado.
Smarty – Sintaxe
●   Exemplo de caching

            require('Smarty.class.php');
            $smarty = new Smarty;
            $smarty->caching = true;
            $smarty->display('index.tpl');



Multiple Chaches per Page
Smarty – Sintaxe
●   Plugins
●   Plugins são determinadas funcionalidades com 
    características próprias à implementar junto ao Smarty.
●

●   Estes sempre só são lidos quando requisitados. 
●

●   E cada plugin é lido apenas uma vez, mesmo se você tem 
    várias instâncias diferentes do Smarty rodando na mesma 
    requisição.
●

●   O diretório de plugins pode ser uma string contendo um caminho ou um 
    array contendo multiplos caminhos. Para instalar um plugin, só coloque 
    em um dos diretórios e a Smarty irá usá­lo automaticamente. 
Smarty – Sintaxe
    Convenções de Plugins
●   Arquivos:                    tipo.nome.php

●   Onde tipo: 
                  ●   function
                  ●   modifier
                  ●   block
                  ●   compiler
                  ●   Prefilter / postfilter / outputfilter
                  ●   resource
                  ●   Insert

    ●   function.html_select_date.php, resource.db.php, modifier.spacify.php.
Comentários?
  Dúvidas?
Obrigada!!

Mais conteúdo relacionado

PPT
Introdução ao Smarty
PDF
NoSQL com Zend Framework 2
PDF
Tutorial codeigniter
PDF
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
PPTX
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
PDF
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
PDF
Treinamento Básico de Django
PPT
Melhorando a Experiência do Usuário com JavaScript e jQuery
Introdução ao Smarty
NoSQL com Zend Framework 2
Tutorial codeigniter
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Treinamento Básico de Django
Melhorando a Experiência do Usuário com JavaScript e jQuery

Destaque (8)

PDF
Smarty Template Engine
PDF
jQuery für Anfänger
PDF
Smarty 2
PDF
PDF
Deploying PHP applications with Phing
PDF
Framework Auswahlkriterin, PHP Unconference 2009 in Hamburg
PDF
Building and deploying PHP applications with Phing
Smarty Template Engine
jQuery für Anfänger
Smarty 2
Deploying PHP applications with Phing
Framework Auswahlkriterin, PHP Unconference 2009 in Hamburg
Building and deploying PHP applications with Phing
Anúncio

Semelhante a Smarty + PHP (20)

PDF
Smarty Template Engine
PDF
Aula 10 - Trabalhando com Templates - Programação Web
PDF
Linguagem PHP para principiantes
PDF
User Interface (in portuguese)
PDF
Serversidephp pptx2-120418140114-phpapp01
PDF
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
PDF
Despertando para o PHP
PPT
A Linguagem Php
PDF
Desenvolvimento Web Avançado usando PHP
PDF
PHP - Capítulo 01
PDF
O que são linguagens de scripting m18
PPT
Aula 01 - Programação Web - PHP
PDF
Tema 1 | Introdução a PHP
PPT
PHP GERAL
PDF
PHP 5.3 - Introdução
PPTX
Minicurso Web. Front-end e HTML5 (parte 2)
PPTX
Php Visao Geral Svs
PPTX
Smarty Template Engine
Aula 10 - Trabalhando com Templates - Programação Web
Linguagem PHP para principiantes
User Interface (in portuguese)
Serversidephp pptx2-120418140114-phpapp01
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
Despertando para o PHP
A Linguagem Php
Desenvolvimento Web Avançado usando PHP
PHP - Capítulo 01
O que são linguagens de scripting m18
Aula 01 - Programação Web - PHP
Tema 1 | Introdução a PHP
PHP GERAL
PHP 5.3 - Introdução
Minicurso Web. Front-end e HTML5 (parte 2)
Php Visao Geral Svs
Anúncio

Último (19)

PDF
SEMINÁRIO DE IHC - A interface Homem-Máquina
PPT
Conceitos básicos de Redes Neurais Artificiais
PPTX
Tipos de servidor em redes de computador.pptx
PPTX
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
PDF
ASCENSÃO E QUEDA DO SOFTWARE LIVRE NO ESTADO BRASILEIRO
PDF
Processos no SAP Extended Warehouse Management, EWM100 Col26
PPTX
Analise Estatica de Compiladores para criar uma nova LP
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PDF
Jira Software projetos completos com scrum
PPTX
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
PDF
Banco de Dados 2atualização de Banco de d
PDF
Processamento da remessa no SAP ERP, SCM610 Col15
PDF
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
PPTX
ccursoammaiacursoammaiacursoammaia123456
PPTX
Aula 7 - Listas em Python (Introdução à Ciencia da Computação)
PPT
Aula de Engenharia de Software principais caracteristicas
PDF
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
PDF
Metodologia Scrumban-XP - Um Guia Rápido (MrSomebody19).pdf
PDF
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
SEMINÁRIO DE IHC - A interface Homem-Máquina
Conceitos básicos de Redes Neurais Artificiais
Tipos de servidor em redes de computador.pptx
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
ASCENSÃO E QUEDA DO SOFTWARE LIVRE NO ESTADO BRASILEIRO
Processos no SAP Extended Warehouse Management, EWM100 Col26
Analise Estatica de Compiladores para criar uma nova LP
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Jira Software projetos completos com scrum
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
Banco de Dados 2atualização de Banco de d
Processamento da remessa no SAP ERP, SCM610 Col15
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
ccursoammaiacursoammaiacursoammaia123456
Aula 7 - Listas em Python (Introdução à Ciencia da Computação)
Aula de Engenharia de Software principais caracteristicas
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
Metodologia Scrumban-XP - Um Guia Rápido (MrSomebody19).pdf
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,

Smarty + PHP

  • 1. Universidade Federal dos Vales Jequitinhonha e Mucuri Sistemas de Informação Apresentação à Disciplina de E.W. Tema: Smarty Lorena C. De Souza
  • 2. Índice Smarty 1 – Apresentação 1.1 Templete 1.2 Classe Templete 1.3 Classe Templete Smarty 1.4 Objetivos 1.5 Visões 2 – Instalação 3 – Sintaxe Básica 4 – Exemplos Práticos
  • 3. Smarty ● ● ● ● Qual a definição de Templete? ●
  • 4. Smarty ● Qual a definição de Templete? Um documento sem conteúdo, com apenas a apresentação visual (apenas cabeçalhos por exemplo) e instruções sobre onde e qual tipo de conteúdo deve entrar a cada parcela da apresentação — por exemplo conteúdos que podem aparecer no início e conteúdos que só podem aparecer no final. ●
  • 6. Smarty Agora qual a definição de Classe Templete? ●
  • 7. Smarty Agora qual a definição de Classe Templete? A Classe Templete tem o principal propósito manter o código HTML em arquivos externos que ficam completamente livres de código PHP. E dessa forma, manter a lógica de programação (PHP) separada da estrutura visual (HTML ou XML, CSS, etc). ●
  • 8. Smarty Com isso, gera duas “extremidades” de desenvolvimento: Html ● A parte da Visão Html CSS CSS PHP PHP ● A parte dos Controles
  • 9. Smarty Sem a Classe Template, o que tem é uma mistura de php, com html, css e etc. <?php echo "<div> <p> Ol&aacute; Mundo!</p> </div>"; ?>
  • 10. Smarty Com a Classe Template, o que tem é uma organização/separação entre os componentes de desenvolvimento da aplicação web. <html> <?php <body> require("Template.class.php"); <p>Olá Mundo!</p> $tpl = new Template("hello.html"); </body> $tpl->show(); </html> ?>
  • 11. Smarty Características específicas da Classe templete Smarty: ● Engine oficializada pela php.net ● ● Ele é extremamente rápido. ● ● Sem elevadas interpretações de template, compila uma vez. ● ● Só recompilará os arquivos de template que foram alterados. ● ● Suporte de caching embutido ● ● Arquitetura de Plugin
  • 12. Smarty Vantagens: Facilidade pra criação uma vez aprendido; Organização; Manutenção de código; Otimização do desenvolvimento do projeto – dois ambientes.
  • 13. Smarty - Instalação Requisitos: Servidor Apache PHP Biblioteca do Smarty
  • 14. Smarty - Instalação Passos: Faça o download do Smarty Descomprima todas as pastas. Verifique uma pasta "demo" Prepare de maneira a deixar visível ao www­data ● ● Dê permissão ao diretório "templates_c".
  • 15. Smarty - Instalação Árvore padrão de diretório do Smarty está organizada da seguinte  ● maneira: ● / ­ Na raiz estarão os arquivos de lógica (.PHP). ● /configs  ­  Arquivos  de  configuração.  É  possível  setar  por  exemplo,  um  título  padrão  para  todo  seu  sistema,  e  utilizá­lo  nos  arquivos  de  templete. ● /libs ­ Bibliotecas do Smarty, onde também fica localizada a classe  principal. ● /templetes  ­  Diretório  padrão  para  localização  dos  templetes.  São  arquivos de interface com o usuário. ● /templetes_c  ­  Diretório  para  cache.  (Deve  estar  com  permissão  de  escrita.)
  • 17. Smarty – Sintaxe ● Comentário ● {* Isto é um comentário *} ● Função, Variáveis e Atributos ● Funções Inernas: {include file=$arquivoInclude} ● Funções Inernas: {config_load file="cores.conf"} ● Funções Inernas: {if $enfase_nome} ● Funções Personalizadas: {html_options} ● Funções Personalizadas: {html_select_date display_days=yes} ● ● Escapando de Interpretação do Smarty ● {ldelim}$Name | upper{rdelim}
  • 18. Smarty – Sintaxe ● Variáveis ● ● Variável definida do php:  ● {$Nome} ● Variável composta definida do php: ● {$Contatos[row].Telefone} ● ● Variável de configuração:  <body bgcolor="{#cordefundo}"> ● ● Variável reservada:  ● $smarty
  • 19. Smarty – Sintaxe ● Variável Reservada $smarty ● Essa variável reservada é utilizada para acessar variáveis especiais do  template. Como por exemplo: as variáveis request get, post, cookies,  server, enviroment e session. Exemplo: ● ● Se tem a seguinte URL http://www.domain.com/index.php?page=foo  ● ●
  • 20. Smarty – Sintaxe ● Variável Reservada $smarty ● Essa variável reservada é utilizada para acessar variáveis especiais do  template. Como por exemplo: as variáveis request get, post, cookies,  server, enviroment e session. Exemplo: ● ● Se tem a seguinte URL http://www.domain.com/index.php?page=foo  ● ● Com {$smarty.get.page} mostra o valor de page da URL; ● ● Para {$smarty.post.page} mostra a variável ”page” de um  formulário. (POST) ● ● Para {$smarty.cookies.username} mostra o valor do cookie  "username.
  • 21. Smarty – Sintaxe  Variável Reservada $smarty ● ● ● Para {$smarty.server.SERVER_NAME} mostra a variável do servidor  "SERVER_NAME". ● ● Para {$smarty.env.PATH} mostra a variável de ambiente do sistema  "PATH". ● ● Para {$smarty.session.id} mostra a variável ”id” de session do php.
  • 22. Smarty – Sintaxe Outras sintaxe reservadas do Smarty: ● ● ● {$smarty.now} – retorna o timestamp atual. ● ● {$smarty.capture} – captura a saída. ● ● {$smarty.template} ­ contém o nome do template atual. {$smarty.template} ● ● {$smarty.section}, {$smarty.foreach} ● ● {$smarty.ldelim} e {$smarty.rdelim}: delimitador esquerdo e direito.
  • 23. Smarty – Sintaxe Modificadores de Variáveis ● ● Para aplicá­lo deve usar a seguinte sintaxe:  ● Valor  |  modificador ● Por exemplo: ● ● {$topico | truncate:40:"..."} {$articleTitle | capitalize} ● ● {$articleTitle | count_characters}  {$articleTitle | cat:" yesterday."} ● ●
  • 24. Smarty – Sintaxe Modificadores de Variáveis ● ● Para aplicá­lo deve usar a seguinte sintaxe:  ● Valor  |  modificador ● Por exemplo: ● ● {$topico | truncate:40:"..."} {$articleTitle | capitalize} ● ● {$articleTitle | count_characters}  {$articleTitle | cat:" yesterday."} ● ● {$smarty.now | date_format:"%H:%M:%S"}  ● ● {$articleTitle | replace:"Garden":"Vineyard"} ● ● {$articleTitle|count_paragraphs}
  • 25. Smarty – Sintaxe ● Caching ● Usado  para  aumentar  a  velocidade  de  chamada  para  display()  ou  fetch() salvando isso num arquivo de saída.  ● Pode  fazer  coisas  tremendamente  rápidas,  especialmente  templetes  com longo tempo computacional. ● Desde que templetes sejam dinâmicos, é importante ter cuidado com  o que você está fazendo cache e por quanto tempo. ● Por  exemplo,  se  você  está  mostrando  a  página  principal  do  seu  website  na  qual  as  alterações  de  conteúdo  são  muito  frequentes  (hora),  isso  funciona  bem  para  cache  dessa  forma.  Já  um  outro  modo, se você está mostrando uma página com um mapa do tempo  contendo novas informações por minuto, não faz sentido fazer cache  nesta página. ● Caching precisa ser configurado.
  • 26. Smarty – Sintaxe ● Exemplo de caching require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = true; $smarty->display('index.tpl'); Multiple Chaches per Page
  • 27. Smarty – Sintaxe ● Plugins ● Plugins são determinadas funcionalidades com  características próprias à implementar junto ao Smarty. ● ● Estes sempre só são lidos quando requisitados.  ● ● E cada plugin é lido apenas uma vez, mesmo se você tem  várias instâncias diferentes do Smarty rodando na mesma  requisição. ● ● O diretório de plugins pode ser uma string contendo um caminho ou um  array contendo multiplos caminhos. Para instalar um plugin, só coloque  em um dos diretórios e a Smarty irá usá­lo automaticamente. 
  • 28. Smarty – Sintaxe Convenções de Plugins ● Arquivos:  tipo.nome.php ● Onde tipo:  ● function ● modifier ● block ● compiler ● Prefilter / postfilter / outputfilter ● resource ● Insert ● function.html_select_date.php, resource.db.php, modifier.spacify.php.