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á 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.
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 wwwdata
●
● 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.)
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.