Este documento fornece um resumo sobre o uso de templates em programação web:
1) Templates servem para separar a camada de interface da lógica do sistema, deixando o código mais organizado e mantível.
2) Arquivos HTML contêm a interface enquanto arquivos PHP incorporam os HTML e configuram suas partes.
3) Uma biblioteca simples de templates chamada Template.class.php é utilizada para exemplo.
Aula 10 - Trabalhando com Templates - Programação Web
1. Programação Web
Fatec Ipiranga
Análise e Desenvolvimento de Sistemas
Aula 10 – Trabalhando com Templates
Dalton Martins
dmartins@gmail.com
São Paulo, Novembro, 2011
Aula baseada no tutorial: http://raelcunha.com/template.php
2. Para que servem os Templates?
Boas práticas de programação presumem que
tenhamos nosso sistemas organizado em 3
camadas:
– Camada de interface: o que é utilizado pelo usuário
no acesso ao sistema;
– Camada de lógica: onde fica a lógica do sistema,
fluxos de informação, processos, cálculos, etc,
– Camada de persistência de dados: onde são
guardados os dados – Banco de Dados.
Os templates servem para separar camada de
interface e lógica!
3. Para que servem os Templates?
Na prática, teremos:
– Arquivos HTML: contém toda a interface de
relação com o usuário, objetos de interface,
configuração visual, cores, fontes, blocos,
menus, etc...
– Arquivos PHP: irão incorporar os arquivos HTML,
podendo configurar determinadas partes de
sua exibição conforme suas necessidades
expecíficas.
4. Biblioteca de Template
O PHP possui várias bibliotecas de templates para
apoiar esse tipo de desenvolvimento.
– Exemplos: smarty, phptemplate, zend, etc...
No entanto, muitas são complexas e difíceis de utilizar,
demandando tempo de estudo;
Iremos utilizar uma biblioteca das mais simples, que no
entanto atende aos requisitos para separação do
sistema em camadas:
– Baixar o arquivo e instalar no diretório do programa;
– http://raelcunha.com/packages/extra/template/files/Templ
ate_pt-br.zip
5. Começando...
Vamos gerar inicialmente dois arquivos:
– Ola.php
– Ola.html
<?php <html>
<body>
require("Template.class.php");
Olá Mundo, com templates PHP!
$tpl = new Template("ola.html");
</body>
$tpl->show(); </html>
?>
7. Checando se variáveis existem
<?php
require("Template.class.php");
$tpl = new Template("layout.html");
// Checando existência da variável antes da atribuição
if($tpl->exists("FULANO")) $tpl->FULANO = "TESTE";
$tpl->show();
?>
8. Trabalhando com blocos
<html>
<body>
<p>Quantidade de produtos cadastrados no sistema:</p>
<!-- BEGIN BLOCK_QUANTIDADE -->
<div class="destaque">Existem {QUANTIDADE} produtos cadastrados.</div>
<!-- END BLOCK_QUANTIDADE -->
<!-- BEGIN BLOCK_VAZIO -->
<div class="vazio">Não existe nenhum produto cadastrado.</div>
<!-- END BLOCK_VAZIO -->
</body>
</html>
9. Trabalhando com blocos
<?php
require("Template.class.php");
$tpl = new Template("hello.html");
// Vamos supor que esta quantidade veio do banco de dados
$quantidade = 5;
// Se existem produtos cadastrados, vamos exibir a quantidade
if($quantidade > 0){
$tpl->QUANTIDADE = $quantidade;
$tpl->block("BLOCK_QUANTIDADE");
}
// Caso não exista nenhum produto, exibimos a mensagem de vazio
else {
$tpl->block("BLOCK_VAZIO");
}
$tpl->show();
?>
10. Trabalhando com blocos e tabelas
<html>
<body>
<p>Produtos cadastrados no sistema:</p>
<table border=1>
<tr><td>Nome</td><td>Quantidade</td></tr>
<!-- BEGIN BLOCK_PRODUTO -->
<tr>
<td> {NOME} </td>
<td> {QUANTIDADE} </td>
</tr>
<!-- END BLOCK_PRODUTO -->
</table>
</body>
</html>
11. Trabalhando com blocos e tabelas
<?php
require("Template.class.php");
$tpl = new Template("hello.html");
// Simulando produtos cadastrados no banco de dados
$produtos = array(
array("nome" => "Sabão em Pó", "quantidade" => 15),
array("nome" => "Escova de Dente", "quantidade" => 53),
array("nome" => "Creme Dental", "quantidade" => 37)
);
// Listando os produtos
foreach($produtos as $p){
$tpl->NOME = $p["nome"];
$tpl->QUANTIDADE = $p["quantidade"];
$tpl->block("BLOCK_PRODUTO");
}
$tpl->show();
?>