smarty + php

Post on 09-Jun-2015

5.030 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

Este é um slide sobre a biblioteca Smarty do php criada por Lorena C. de Souza, baseada no próprio site smarty.net

TRANSCRIPT

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&aacute; 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 www­dataPrepare de maneira a deixar visível ao www­data●

● 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!!

top related