ZF Básico - 5. Modelo

1,701 views
1,590 views

Published on

Mini-curso sobre Zend Framework - Parte 5

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,701
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
157
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

ZF Básico - 5. Modelo

  1. 1. Zend Framework Parte V: Ampliando a primeira aplicação – MVC
  2. 2. O Banco de Dados <ul><li>Agora que o controle da aplicação já está devidamente separado da visão, é hora de criar o modelo, também chamado de regras de negócio. </li></ul><ul><li>O ponto de partida é o banco de dados que definirá as regras de negócio da aplicação. </li></ul><ul><li>Será usada a classe Zend_Db_table para operações CRUD a partir de tabelas. </li></ul>
  3. 3. Configuração <ul><li>Para usar Zend_Db_Table precisamos nos conectar primeiro a um banco de dados, fornecendo o usuário e senha. </li></ul><ul><li>Para automatizar essa tarefa, usaremos um arquivo de configuração que contenha essa informação. </li></ul><ul><li>O ZF provê o Zend_Config para criar um objeto flexível que contenha os dados do arquivo de configuração. </li></ul>
  4. 4. Configuração <ul><li>./application/config.ini </li></ul>
  5. 5. Configuração <ul><li>Editar o bootstrap (index.php) e adicionar depois de Zend_Loader::registerAutoload();: </li></ul>
  6. 6. Configuração <ul><li>Editar o bootstrap (index.php) e adicionar depois de $registry->set('config', $config);: </li></ul>
  7. 7. Criando a Tabela <ul><li>Instale o DBDesigner4. Depois, use-o para criar e publicar a tabela abaixo: </li></ul>Não Varchar(100) titulo Não Varchar(100) artista Primary key, Autoincrement Não Integer id Obs Nulo? Tipo Campo
  8. 8. Inserindo Dados na Tabela <ul><li>Ainda com o DBDesigner4, execute a seguinte query: </li></ul>
  9. 9. O Modelo <ul><li>Zend_Db_Table é uma classe abstrata. Assim teremos que derivar nossa própria classe a partir dela. </li></ul><ul><li>Como nossa tabela se chama ‘albums’, nossa classe manterá a coerência e chamar-se-á ‘Albums’. </li></ul><ul><li>Em nossa classe definiremos uma propriedade protegida chamada $_name que armazenará o nome da tabela com a qual a classe trabalhará. </li></ul><ul><li>Zend_Db_Table espera que a chave primária de sua tabela seja chamada ‘id’ e que seja um campo de auto-incremento. </li></ul>
  10. 10. O Modelo <ul><li>./application/models/Albums.php </li></ul>
  11. 11. Listando os Álbuns <ul><li>Editar o método indexAction da classe IndexController. </li></ul><ul><li>O método fetchAll() retorna um objeto Zend_Db_Table_Rowset que nos permite iteração sobre as linhas retornadas da tabela. </li></ul>
  12. 12. Listando os Álbuns <ul><li>Colocando o conteúdo específico no arquivo de visão: ./application/views/scripts/index/index.phtml </li></ul>
  13. 13. Adicionando Álbuns <ul><li>Iremos usar o componente Zend_Form para criar um formulário com validação das entradas. </li></ul><ul><li>Nossa classe de formulário ficará na camada de modelo e será uma extensão da Zend_Form. </li></ul><ul><li>Chamaremos a classe de AlbumForm. </li></ul>
  14. 14. Adicionando Álbuns <ul><li>./application/models/AlbumForm.php </li></ul>
  15. 15. Adicionando Álbuns <ul><li>Editando o IndexController.php </li></ul>
  16. 16. Adicionando Álbuns <ul><li>Editando o add.phtml </li></ul>
  17. 17. Editando Álbuns <ul><li>Editando o IndexController.php </li></ul>
  18. 18. Editando Álbuns <ul><li>Editando o edit.phtml </li></ul>
  19. 19. Removendo Álbuns <ul><li>É possível remover um registro diretamente ao clicar no link, mas essa não é uma boa prática. </li></ul><ul><li>Devemos recuperar a informação do registro a ser removido e exigir uma confirmação do usuário. </li></ul><ul><li>O registro só será removido caso o usuário confirme afirmativamente a remoção. </li></ul>
  20. 20. Removendo Álbuns <ul><li>Editando o IndexController.php </li></ul>
  21. 21. Removendo Álbuns <ul><li>Editando o delete.phtml </li></ul>
  22. 22. Teste a aplicação <ul><li>Dúvidas e conclusões da prática. </li></ul><ul><li>Próxima prática: adicionando um autenticador de usuário para a aplicação. </li></ul>

×