PHP, Smarty e o Template View Pattern

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    2 Favorites & 1 Group

    PHP, Smarty e o Template View Pattern - Presentation Transcript

    1. PHP, Smarty e o Template View Pattern FSL - 12 de Outubro de 2007 Bruno Pedro <bpedro@computer.org>
    2. FSL 2007 Bruno Pedro Conteúdo • Motivação • A solução • Template View Pattern • Model, Helper e View • Smarty • Resumo PHP, Smarty e o Template View Pattern 2
    3. FSL 2007 Bruno Pedro Motivação É fácil misturar lógica e apresentação PHP, Smarty e o Template View Pattern 3
    4. FSL 2007 Bruno Pedro Motivação É muito fácil misturar lógica e apresentação PHP, Smarty e o Template View Pattern 4
    5. FSL 2007 Bruno Pedro Motivação Acesso ao MySQL a partir da apresentação PHP, Smarty e o Template View Pattern 5
    6. FSL 2007 Bruno Pedro Motivação Consumo de RSS na apresentação PHP, Smarty e o Template View Pattern 6
    7. FSL 2007 Bruno Pedro Motivação Spaghetti Código difícil de manter PHP, Smarty e o Template View Pattern 7
    8. FSL 2007 Bruno Pedro Motivação Escapar ao Spaghetti Monster PHP, Smarty e o Template View Pattern 8
    9. FSL 2007 Bruno Pedro Motivação • É fácil misturar lógica e apresentação • É tentador aceder à informação a partir da apresentação • O código torna-se confuso com o decorrer do tempo • É complicado manter este tipo de código PHP, Smarty e o Template View Pattern 9
    10. FSL 2007 Bruno Pedro A solução + PHP, Smarty e o Template View Pattern 10
    11. FSL 2007 Bruno Pedro A solução Lógica Apresentação PHP, Smarty e o Template View Pattern 11
    12. FSL 2007 Bruno Pedro Vantagens • Facilita alterações à apresentação, que poderão ser frequentes • Melhora a robustez da lógica • Aumenta a segurança da aplicação • Melhora o desempenho da aplicação • Permite utilizar a mesma apresentação em diferentes aplicações PHP, Smarty e o Template View Pattern 12
    13. FSL 2007 Bruno Pedro Não é fácil • Exige disciplina e metodologia • Leva tempo • Dá vontade de voltar para trás • Parecem sempre existir outras formas mais simples PHP, Smarty e o Template View Pattern 13
    14. FSL 2007 Bruno Pedro Template View Pattern fonte: Fowler, M., Patterns of Enterprise Application Architecture, p. 350 PHP, Smarty e o Template View Pattern 14
    15. FSL 2007 Bruno Pedro 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 PHP, Smarty e o Template View Pattern 15
    16. FSL 2007 Bruno Pedro Template View Pattern Apresentação Lógica <html> <body> Calculator Helper 12 + 5 = sum Calculator {$calc->sum x=12 y=5} multiply ... </body> </html> PHP, Smarty e o Template View Pattern 16
    17. FSL 2007 Bruno Pedro Model, Helper e View Model Helper View <html> <body> Calculator Helper 12 + 5 = sum Calculator {$calc->sum x=12 y=5} multiply ... </body> </html> PHP, Smarty e o Template View Pattern 17
    18. FSL 2007 Bruno Pedro 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 PHP, Smarty e o Template View Pattern 18
    19. FSL 2007 Bruno Pedro Model PHP, Smarty e o Template View Pattern 19
    20. FSL 2007 Bruno Pedro 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. PHP, Smarty e o Template View Pattern 20
    21. FSL 2007 Bruno Pedro Helper PHP, Smarty e o Template View Pattern 21
    22. FSL 2007 Bruno Pedro Helper • Implementa a lógica funcional: • input do utilizador; • paginação de resultados; • adaptação e agregação de informação. PHP, Smarty e o Template View Pattern 22
    23. FSL 2007 Bruno Pedro View PHP, Smarty e o Template View Pattern 23
    24. FSL 2007 Bruno Pedro 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. PHP, Smarty e o Template View Pattern 24
    25. FSL 2007 Bruno Pedro Ferramentas Apresentação Lógica ? <html> <body> Calculator Helper 12 + 5 = sum Calculator {$calc->sum x=12 y=5} multiply ... </body> </html> PHP, Smarty e o Template View Pattern 25
    26. FSL 2007 Bruno Pedro Porque não PHP? • Proteger o template de acessos a funções potencialmente perigosas • Permitir que o template seja manipulado por alguém com poucos conhecimentos de programação • Evitar a tendência do código spaghetti • Oferecer um conjunto de funcionalidades suficientes à gestão da apresentação PHP, Smarty e o Template View Pattern 26
    27. FSL 2007 Bruno Pedro “Make it simple, but not simpler.” Albert Einstein Fonte:The Library of Congress PHP, Smarty e o Template View Pattern 27
    28. FSL 2007 Bruno Pedro Smarty • Motor de templates com sintaxe simples • Utiliza objectos • Permite compilar templates, melhorando o seu desempenho • Bastante versátil e modular PHP, Smarty e o Template View Pattern 28
    29. FSL 2007 Bruno Pedro Utilização • Código pode ser obtido em http://smarty.php.net/ • Para começar é necessário instanciar um objecto Smarty PHP, Smarty e o Template View Pattern 29
    30. FSL 2007 Bruno Pedro 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 PHP, Smarty e o Template View Pattern 30
    31. FSL 2007 Bruno Pedro Variáveis • Passagem de variáveis que poderão ser usadas pelo template PHP, Smarty e o Template View Pattern 31
    32. FSL 2007 Bruno Pedro 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 PHP, Smarty e o Template View Pattern 32
    33. FSL 2007 Bruno Pedro 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 PHP, Smarty e o Template View Pattern 33
    34. FSL 2007 Bruno Pedro Modificadores • É possível combinar modificadores {$title|capitalize|wordwrap:10} {$text|strip_tags|lower|truncate} PHP, Smarty e o Template View Pattern 34
    35. FSL 2007 Bruno Pedro Funções - capture • Grava numa variável o conteúdo que estiver entre os tags • Exemplo: PHP, Smarty e o Template View Pattern 35
    36. FSL 2007 Bruno Pedro Funções - foreach • Implementa um iterador de arrays • Exemplo: PHP, Smarty e o Template View Pattern 36
    37. FSL 2007 Bruno Pedro Funções - if • Implementa uma condição • Exemplo: PHP, Smarty e o Template View Pattern 37
    38. FSL 2007 Bruno Pedro 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”} PHP, Smarty e o Template View Pattern 38
    39. FSL 2007 Bruno Pedro 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} PHP, Smarty e o Template View Pattern 39
    40. FSL 2007 Bruno Pedro 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 PHP, Smarty e o Template View Pattern 40
    41. FSL 2007 Bruno Pedro Separação Apresentação Lógica <html> <body> Calculator Helper 12 + 5 = sum Calculator {$calc->sum x=12 y=5} multiply ... </body> </html> PHP, Smarty e o Template View Pattern 41
    42. FSL 2007 Bruno Pedro Resumo • Separação entre lógica e apresentação • Motivação - os problemas • A solução • Template View Pattern • Model, Helper e View • Smarty PHP, Smarty e o Template View Pattern 42
    43. FSL 2007 Bruno Pedro Questões? PHP, Smarty e o Template View Pattern 43
    44. FSL 2007 Bruno Pedro Mais informação • PHP Manual: http://www.php.net/ • Smarty: http://smarty.php.net/ • DRI: http://www.dri.pt/ • O meu blog: http://unfoldingtheweb.com/ PHP, Smarty e o Template View Pattern 44

    + Bruno PedroBruno Pedro, 2 years ago

    custom

    4956 views, 2 favs, 2 embeds more stats

    More Info

    © All Rights Reserved

    Go to text version
    • Total Views 4956
      • 4954 on SlideShare
      • 2 from embeds
    • Comments 0
    • Favorites 2
    • Downloads 166
    Most viewed embeds
    • 1 views on http://s3.amazonaws.com
    • 1 views on http://classblogmeister.com

    more

    All embeds
    • 1 views on http://s3.amazonaws.com
    • 1 views on http://classblogmeister.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as innappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel

    Categories

    Groups / Events