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

ZF Básico - 5. Modelo

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