User Interface (in portuguese)
-
Upload
bruno-pedro -
Category
Technology
-
view
2.578 -
download
2
description
Transcript of User Interface (in portuguese)
User Interface
PHP Advanced
Conteúdo
• Template View Pattern
• Smarty
• Componentes
• Projecto
• Resumo
2
User Interface
PHP Advanced
Template View Pattern
3
fonte: Fowler, M., Patterns of Enterprise Application Architecture, p. 350
User Interface
PHP Advanced
Template View Pattern
• Separação real entre lógica e apresentação
• A informação aparece nas páginas através de marcadores (tags) específicos
• Toda a lógica antes da apresentação não escreve nem devolve HTML
• Solução ideal para equipas em que existem programadores e Web designers
4
User Interface
PHP Advanced
Model, Helper e View
5
Calculatorsummultiply...
Calculator Helper
<html><body>
12 + 5 ={$calc->sum x=12 y=5}
</body></html>
Model Helper View
User Interface
PHP Advanced
Model, Helper e View
• Divisão facilita a separação entre lógica e apresentação
• Possibilidade de delegar tarefas em cada uma das camadas a equipas diferentes
• Diminui a complexidade do código, facilitando a sua manutenção
6
User Interface
PHP Advanced
Model
7
User Interface
PHP Advanced
Model
• Implementa a lógica do negócio:
• acesso à informação (bases de dados);
• algoritmos específicos;
• cálculo numérico;
• acesso a Web Services.
8
User Interface
PHP Advanced
Helper
9
User Interface
PHP Advanced
Helper
• Implementa a lógica funcional:
• input do utilizador;
• paginação de resultados;
• adaptação e agregação de informação.
10
User Interface
PHP Advanced
View
11
User Interface
PHP Advanced
View
• Implementa a lógica de apresentação:
• interface com o utilizador;
• aparência e estética das páginas;
• selecção da informação a apresentar.
12
User Interface
PHP Advanced
Smarty• Motor de templates com sintaxe simples
• Utiliza objectos
• Permite compilar templates, melhorando o seu desempenho
• Bastante versátil e modular
13
User Interface
PHP Advanced
Utilização• Código pode ser obtido em
http://smarty.php.net/
• Para começar é necessário instanciar um objecto Smarty
14
User Interface
PHP Advanced
Configurações• $smarty->template_dir: directório onde o
Smarty vai interpretar os templates
• $smarty->compile_dir: directório onde o Smarty vai gravar os templates compilados
• $smarty->cache_dir: directório onde é gravada a cache
• $smarty->caching: possibilidade de ligar ou desligar a cache
15
User Interface
PHP Advanced
Variáveis• Passagem de variáveis que poderão ser
usadas pelo template
16
User Interface
PHP Advanced
Variáveis
• {$var} - mostra o conteúdo da variável
• {$array[5]} - mostra o conteúdo do 5º elemento do array
• {$array.name} - mostra o conteúdo da posição ‘name’ do array
• {$obj->name} - mostra o conteúdo do atributo ‘name’ do objecto
17
User Interface
PHP Advanced
Modificadores• {$name|capitalize}: apresenta em maiúsculas
as primeiras letras de todas as palavras
• {$today|date_format}: formata a apresentação de uma data e hora
• {$title|lower}: converte em minúsculas
• {$title|upper}: converte em maiúsculas
• {$body|wordwrap:30}: quebra um texto a uma largura específica
18
User Interface
PHP Advanced
Modificadores
• É possível combinar modificadores
19
{$title|capitalize|wordwrap:10}
{$text|strip_tags|lower|truncate}
User Interface
PHP Advanced
Funções - capture• Grava numa variável o conteúdo que
estiver entre os tags
• Exemplo:
20
User Interface
PHP Advanced
Funções - foreach
• Implementa um iterador de arrays
• Exemplo:
21
User Interface
PHP Advanced
Funções - if• Implementa uma condição
• Exemplo:
22
User Interface
PHP Advanced
Funções - include
• Inclui outro ficheiro Smarty
• O outro ficheiro é interpretado
• Todas as variáveis ficam disponíveis no ficheiro incluido
• Exemplo:
{include file=”ficheiro2.html”}
23
User Interface
PHP Advanced
Funções - literal• Permite não interpretar um bloco de
código
• Bastante útil quando temos JavaScript dentro dos templates
{literal}
Este bloco não é interpretado.
{/literal}
24
User Interface
PHP Advanced
Outras funcionalidades
• Muitos outros modificadores e funções
• Caching parcial e dependente de identificador
• Configurações de segurança
• Filtros de templates
• Extensível através de plugins
25
User Interface
PHP Advanced
Separação
26
ApresentaçãoLógica
<html><body>
12 + 5 ={$calc->sum x=12 y=5}
</body></html>
Calculatorsummultiply...
Calculator Helper
User Interface
PHP Advanced
Componentes• User
• Registo
• Autenticação
• Configurações
• Data
• Obtenção e gravação de dados
• RSS
27
User Interface
PHP Advanced
User
28
save()load()auth()addConf()...
firstNamelastNameusername
User
User Interface
PHP Advanced
Data
29
save()load()search()...
source...
Data
User Interface
PHP Advanced
RSS
30
get()getItem()...
source...
RSS
User Interface
PHP Advanced
Projecto
• Página de registo
• nome
• username
• password
• confirmação de password
31
User Interface
PHP Advanced
Projecto
• Página de autenticação
• username
• password
32
User Interface
PHP Advanced
Projecto
• Configurações
• adicionar URL de RSS
• remover URL de RSS
• listar URLs configurados
33
User Interface
PHP Advanced
Projecto
• Visualização de dados
• listagem dos itens dos vários RSS
• ordenação
• paginação
34
User Interface
PHP Advanced
Resumo
• Template View Pattern
• Model, Helper e View
• Smarty
• Componentes a implementar
• Implementação de User Interface
35
User Interface
PHP Advanced
Questões?
36
User Interface
PHP Advanced
Mais informação
37
• O meu blog: http://unfoldingtheweb.com/
• Manual de PHP: http://www.php.net/