Your SlideShare is downloading. ×
ZF Básico - 4. Controle e Visão
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

ZF Básico - 4. Controle e Visão

3,228
views

Published on

Mini-curso sobre Zend Framework - Parte 4

Mini-curso sobre Zend Framework - Parte 4

Published in: Education

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,228
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
162
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Zend Framework Parte IV: Ampliando a primeira aplicação – Controle e Visão
  • 2. Ajustando o Bootstrap
    • Substitua o seguinte trecho de código:
    • Zend_Loader::loadClass('Zend_Controller_Front');
    • Por:
    • Zend_Loader::registerAutoload();
    • O método registerAutoload() se encarrega de carregar automaticamente qualquer classe da biblioteca do ZF.
  • 3. Especificação da Aplicação
    • Iremos construir uma simples aplicação para inventário de uma coleção de CDs.
    • A página principal deverá listar a coleção e permitir o acesso às funcionalidades de Adicionar, Editar e Remover CDs da coleção.
  • 4. Modelando os Dados
    • Iremos armazenar nossa lista numa tabela chamada ‘cd’ com um esquema semelhante a:
    Não Varchar(100) titulo Não Varchar(100) artista Primary key, Autoincrement Não Integer id Obs Nulo? Tipo Campo
  • 5. Páginas para a aplicação Esta página confirmará a remoção de um álbum e então o removerá. Remover Proverá um formulário para edição de um álbum. Editar Proverá um formulário para adição de um novo álbum. Adicionar Exibirá a lista de álbuns e proverá links para editá-los e removê-los. Além disso, um link para permitir a adição de novos álbuns será provido. Home Descrição Página
  • 6. Organizando as páginas
    • Cada página da aplicação é conhecida como uma “action” e estas são agrupadas dentro de “controllers”.
    • Ex.: Para uma URL no formato http://localhost/project/news/view, o controller é news e a action é view .
    • O ZF permite agrupar actions relacionadas.
  • 7. Organizando as páginas
    • O controller do ZF reserva uma action especial chamada index como a action padrão.
    • Em nosso exemplo, na URL http://localhost/project/news/ a action index contida no controller news será executada.
  • 8. Organizando as páginas
    • Como temos quatro páginas, todas aplicáveis a álbuns, iremos agrupá-las num único controller contedo as quatro actions . Usaremos o controller padrão e as quatro actions serão:
    delete Index Remover edit Index Editar add Index Adicionar index Index Home Action Controller Página
  • 9. Setando o controller
    • No ZF, o controller é uma classe nomeada como {Nome}Controller.
    • Esta classe deverá estar num arquivo chamado {Nome}Controller.php dentro do diretório ./application/controllers.
    • Note que ambos os nomes devem começar com letras maiúsculas.
  • 10. Setando o controller
    • Cada action é uma função pública contida na classe controller e deve ser nomeada como {nome}Action. Neste caso {nome} deve iniciar com letra minúscula.
    • Como nosso controller é o IndexController já iniciado na aplicação passada, vamos editá-lo.
  • 11. Setando o controller
    • Cada action é uma função pública contida na classe controller e deve ser nomeada como {nome}Action. Neste caso {nome} deve iniciar com letra minúscula.
    • Como nosso controller é o IndexController já iniciado na aplicação passada, vamos editá-lo.
  • 12. Setando o controller
  • 13. Setando o controller
    • Setamos as quatro actions que usaremos no controller . Porém, não poderão ser usadas até que setemos seus respectivos views . As URLs para cada action são:
    IndexController::deleteAction() http://localhost/project/index/delete IndexController::editAction() http://localhost/project/index/edit IndexController::addAction() http://localhost/project/index/add IndexController::indexAction() http://localhost/project Action URL
  • 14. Setando o view
    • O componente view do ZF é chamado Zend_View. Ele nos permitirá separar o código de visualização da página do código das funções action .
    • Zend_Controller_Action_Helper_ViewRenderer é o componente listener que inicializa uma propriedade view ($this->view) para que possa ser usada na renderização de um script de visualização. Para isso, ele seta o objeto Zend_View para observar em views/scripts/{controller_name} para que seja renderizado o script de visualização cujo nome seja a parte inicial da action correspondente, acrescido da extensão .phtml.
    • Dessa forma, o script de visualização renderizado é: views/scripts/{controller_name}/{action_name}.phtml
  • 15. Setando o view
    • Para integrar a visualização dentro da aplicação é preciso criar os arquivos de visualização ( templates ). Para prover funcionalidade aos mesmos, deve-se acrescentar algum conteúdo específico que corresponda às ações definidas nos controller actions .
    • Implementar a renderização das visões das páginas com seus respectivos títulos.
  • 16. Setando o view
  • 17. Setando o view
    • É preciso adicionar quatro arquivos de visão à aplicação. Estes arquivos são conhecidos como scripts de visão ou templates de visão.
    • Cada template é nomeado conforme sua action e possui extensão .phtml.
    • O arquivo precisa estar no subdiretório nomeado conforme o controller utilizado.
  • 18. Setando o view
    • ./application/views/scripts/index/index.phtml
  • 19. Setando o view
    • ./application/views/scripts/index/add.phtml
  • 20. Setando o view
    • ./application/views/scripts/index/edit.phtml
  • 21. Setando o view
    • ./application/views/scripts/index/delete.phtml
    • Rode a aplicação.
  • 22. Código HTML comum
    • Ficou bem óbvio que há um código HTML comum em nossos templates . Este é um problema bastante comum, por isso o componente Zend_Layout foi desenvolvido para resolvê-lo.
    • Zend_Layout nos permite mover todo o código de cabeçalho e rodapé comuns para um script de layout , o qual poderá incluir o código de visão que for específico à ação executada.
  • 23. Código HTML comum
    • São necessários os seguintes ajustes em nossa aplicação:
      • Criar o diretório: ./application/layouts.
      • Inicializar o Zend_Layout no arquivo bootstrap (index.php):
        • Localize a linha:
        • $frontController->setControllerDirectory('../application/controllers');
        • Abaixo dela acrescente:
        • /**
        • * seta o diretório com os templates-padrão da aplicação
        • *
        • */
        • Zend_Layout::startMvc(array('layoutPath'=>'./application/layouts'));
  • 24. Código HTML comum
    • O método startMvc() trabalha nos bastidores para setar um plugin ao front controller que garantirá que o componente Zend_Layout renderize o script de layout, com os scripts de visão das ações, até o final do processo de execução.
    • Agora é preciso criar um script de layout . Por padrão, ele é chamado layout.phtml e fica no diretório ./application/layouts.
  • 25. Criando o layout.phtml
    • ./application/layouts/layout.phtml
  • 26. Código HTML comum
    • Agora, pode-se limpar as 4 action scripts pois nenhum conteúdo específico foi colocado nelas.
    • Sem apagar os arquivos, apenas limpe o conteúdo de index.phtml, add.phtml, edit.phtml e delete.phtml.
    • Execute o código e analise o resultado.
  • 27. Aplicando um CSS: Problema
    • Aplicar um CSS ao projeto com ZF tem um problema: a URL não consegue apontar corretamente ao diretório-raiz da aplicação.
    • Isso é resolvido usando um componente chamado Helper de visão.
    • Ao passo que o ZF provê muitos helpers prontos, alguns específicos precisam ser feitos pelo projetista da aplicação.
  • 28. Aplicando um CSS: Solução
    • Será preciso criar um view helper específico, chamado baseUrl(), que colherá a informação no formato requerido para requisitar o objeto.
    • View helpers ficam no subdiretório application/views/helpers e são nomeados {Helper_name}.php (primeira letra maiúscula) e a classe contida precisa ser chamada Zend_View_Helper_{Helper_name} (novamente, primeira letra maiúscula). É preciso haver um método na classe chamado {helper_name}() (primeira letra minúscula).
    • Em nossa aplicação, o arquivo é chamado BaseUrl.php.
  • 29. Criando o View Helper
    • ./application/views/helpers/BaseUrl.php
  • 30. Ajustando o layout.phtml
    • Localize o seguinte trecho de código no arquivo layout.phtml e acrescente a linha necessária:
  • 31. Criando o CSS
    • ./public/css/site.css
    • Rode a aplicação.