Smarty + PHP
-
Upload
lorena-de-souza -
Category
Technology
-
view
5.020 -
download
4
description
Transcript of Smarty + PHP
Universidade Federal dos Vales Universidade Federal dos Vales Jequitinhonha e MucuriJequitinhonha e MucuriSistemas de InformaçãoSistemas de Informação
Apresentação à Apresentação à Disciplina de E.W.Disciplina de E.W.
Tema:Tema: SmartySmarty
Lorena C. De SouzaLorena C. De Souza
Índice SmartyÍndice Smarty
1 – Apresentação1 – Apresentação
1.1 Templete1.1 Templete1.2 Classe Templete1.2 Classe Templete1.3 Classe Templete Smarty1.3 Classe Templete Smarty1.4 Objetivos1.4 Objetivos1.5 Visões1.5 Visões
2 – Instalação2 – Instalação3 – Sintaxe Básica3 – Sintaxe Básica4 – Exemplos Práticos4 – Exemplos Práticos
SmartySmarty
●
●
●
● Qual a definição de Qual a definição de TempleteTemplete??●
SmartySmarty
● Qual a definição de Qual a definição de TempleteTemplete??
Um documento sem conteúdo, com apenas a apresentação visual Um documento sem conteúdo, com apenas a apresentação visual (apenas cabeçalhos por exemplo) e instruções sobre onde e qual (apenas cabeçalhos por exemplo) e instruções sobre onde e qual tipo de conteúdo deve entrar a cada parcela da apresentação — 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 por exemplo conteúdos que podem aparecer no início e conteúdos que só podem aparecer no final.que só podem aparecer no final.●
THU
SmartySmarty
●
●
SmartySmarty
Agora qual a definição de Classe Templete?Agora qual a definição de Classe Templete?
●
SmartySmarty
Agora qual a definição de Classe Templete?Agora qual a definição de Classe Templete?
A Classe Templete tem o principal A Classe Templete tem o principal propósitopropósito manter o manter o código HTML em arquivos externos que ficam código HTML em arquivos externos que ficam completamente livres de código PHP. E dessa forma, completamente livres de código PHP. E dessa forma, manter a lógica de programação (PHP) separada da manter a lógica de programação (PHP) separada da estrutura visual (HTML ou XML, CSS, etc).estrutura visual (HTML ou XML, CSS, etc).●
SmartySmarty
Com isso, gera duas “extremidades” de Com isso, gera duas “extremidades” de desenvolvimento:desenvolvimento:
● A parte da A parte da VisãoVisão● A parte dos A parte dos ControlesControles
HtmlHtmlCSSCSS PHPPHPPHPPHP
HtmlHtmlCSSCSS
SmartySmarty
Sem a Classe Template, o que tem é uma mistura de php, com Sem a Classe Template, o que tem é uma mistura de php, com
html, css e etc.html, css e etc.
<?php
echo "<div> <p> Olá Mundo!</p>
</div>";?>
SmartySmarty
Com a Classe Template, o que tem é uma organização/separação Com a Classe Template, o que tem é uma organização/separação
entre os componentes de desenvolvimento da aplicação web.entre os componentes de desenvolvimento da aplicação web.
<html><body>
<p>Olá Mundo!</p></body>
</html>
<?php require("Template.class.php");
$tpl = new Template("hello.html"); $tpl->show(); ?>
SmartySmartyCaracterísticas específicas da Classe templete Características específicas da Classe templete Smarty:Smarty:
● Engine oficializada pela php.netEngine oficializada pela php.net●
● Ele é extremamente rápido.Ele é extremamente rápido.●
● Sem elevadas interpretações de template, compila Sem elevadas interpretações de template, compila uma vez.uma vez.
●
● Só recompilará os arquivos de template que foram Só recompilará os arquivos de template que foram alterados.alterados.
●
● Suporte de caching embutidoSuporte de caching embutido●
● Arquitetura de PluginArquitetura de Plugin
SmartySmarty
Vantagens:Vantagens:
Facilidade pra criação uma vez aprendido;Facilidade pra criação uma vez aprendido;
Organização;Organização;
Manutenção de código;Manutenção de código;
Otimização do desenvolvimento do projeto – dois Otimização do desenvolvimento do projeto – dois ambientes.ambientes.
Smarty - InstalaçãoSmarty - Instalação
Requisitos:Requisitos:
Servidor Servidor ApacheApache
PHPPHP
Biblioteca do Biblioteca do SmartySmarty
Smarty - InstalaçãoSmarty - Instalação
Passos:Passos:
Faça o download do Faça o download do SmartySmarty
Descomprima todas as pastas.Descomprima todas as pastas.
Verifique uma pasta "demo"Verifique uma pasta "demo"
Prepare de maneira a deixar visível ao wwwdataPrepare de maneira a deixar visível ao wwwdata●
● Dê permissão ao diretório "templates_c".Dê permissão ao diretório "templates_c".
Smarty - InstalaçãoSmarty - Instalação●Árvore padrão de diretório do Smarty está organizada da seguinte Árvore padrão de diretório do Smarty está organizada da seguinte maneira: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 – SintaxeSmarty – Sintaxe●Todas as tags de template do Smarty contém delimitadores. Por padrão, Todas as tags de template do Smarty contém delimitadores. Por padrão, estes delimitadores são { e }, mas eles podem ser alterados.estes delimitadores são { e }, mas eles podem ser alterados.●
● Para o Smarty, todo o conteúdo fora dos delimitadores é mostrado como 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 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 template, ele tenta interpretálas, e então mostra a saída apropriada em seu lugar.seu lugar.
Smarty – SintaxeSmarty – Sintaxe● ComentárioComentário
● {* {* Isto é um comentário Isto é um comentário *}*}
● Função, Variáveis e AtributosFunção, Variáveis e Atributos● Funções Inernas: Funções Inernas: {include file=$arquivoInclude}{include file=$arquivoInclude}● Funções Inernas:Funções Inernas: {config_load file="cores.conf"}{config_load file="cores.conf"}● Funções Inernas:Funções Inernas: {if $enfase_nome}{if $enfase_nome}● Funções Personalizadas:Funções Personalizadas: {html_options}{html_options}● Funções Personalizadas:Funções Personalizadas: {html_select_date display_days=yes}{html_select_date display_days=yes}
●
● Escapando de Interpretação do SmartyEscapando de Interpretação do Smarty● {ldelim}$Name | upper{rdelim}{ldelim}$Name | upper{rdelim}
Smarty – SintaxeSmarty – Sintaxe● VariáveisVariáveis
●
● Variável definida do php: ● {$Nome}{$Nome}
● Variável composta definida do php:● {$Contatos[row].Telefone}●
● Variável de configuração: <body bgcolor="{#cordefundo}">
●
● Variável reservada: ● $smarty
Smarty – SintaxeSmarty – Sintaxe●Variável Reservada $smartyVariá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 – SintaxeSmarty – Sintaxe●Variável Reservada $smartyVariá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 – SintaxeSmarty – Sintaxe● Variável Reservada $smartyVariá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 – SintaxeSmarty – Sintaxe●Outras sintaxe reservadas do Smarty:●
● {$smarty.now} – retorna o timestamp atual.●
● {$smarty.capture} – captura a saída.●
● {$smarty.template}{$smarty.template} contém o nome do template atual.●
● {$smarty.section}, {$smarty.foreach}●
● {$smarty.ldelim} e {$smarty.rdelim}: delimitador esquerdo e direito.
Smarty – SintaxeSmarty – 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 – SintaxeSmarty – 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 – SintaxeSmarty – 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 – SintaxeSmarty – Sintaxe● Exemplo de caching
require('Smarty.class.php');$smarty = new Smarty;$smarty->caching = true;$smarty->display('index.tpl');
Multiple Chaches per Page
Smarty – SintaxeSmarty – 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 – SintaxeSmarty – 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!!