Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ZF Básico - 5. Modelo

1,771 views

Published on

Mini-curso sobre Zend Framework - Parte 5

Published in: Education
  • Be the first to comment

  • Be the first to like this

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>

×