Zend Framework
Utilizando Zend_Db_Table_Abstract do Zend Framework
Em nosso site de pré-lançamento, queremos pegar a maior quantidade de emails para notificarmos o usuário quando tudo estiver pronto. Para isso utilizaremos no ZF a Zend_Db_Table_Abstract para gravar um simples registro no banco de dados, o email. Esse exemplo parece ser muito simples, mas acredito que muitas variações podem ser feitas através do mesmo.
Vamos definir uma entidade chamada “Prospects” (possíveis membros da SON – School of Net) e então tal prospects acabará virando um modelo no zend framework, como segue código super simples a seguir:
models/prospects.php
Partimos do princípio que você já configurou o seu ZF conforme nosso post de introdução, com isso, as seguintes linhas já estarão fazendo a configuração com o banco:
parte do html/index.php (bootstrap ou arquivo de configuração):
// load configuration $config = new Zend_Config_Ini('../application/config.ini', 'general'); $registry = Zend_Registry::getInstance(); $registry->set('config', $config); // setup database $db = Zend_Db::factory($config->db); Zend_Db_Table::setDefaultAdapter($db);
Nesse ponto criamos uma action. Ops..Action??!! O que é isso?
As actions são ações executadas através de um controller.
Exemplo: www.seusite.com.br/index/inscrever
Nesse caso, o controller é o IndexController.php e a action é a inscrever que nada mais é do que uma função que foi criada no IndexController.php, conforme exemplo abaixo:
OBS: Se nenhuma action for chamada (www.seusite.com.br/index), o ZF entende que você está executando a IndexAction().
controllers/IndexController.php
<?php class IndexController extends Zend_Controller_Action { public function indexAction() {} public function inscreverAction() { if ($this->_request->isPost ()) { $formData = $this->_request->getPost (); $prospects = new Prospects ( ); try { $row = $prospects->createRow (); $row->email = $formData ['email']; $row->save (); } catch ( Exception $e ) { $this->view->error = $e; } } } }
Veja que no código acima, criamos um objeto chamado $row fazendo parte da classe extendida “prospects” (model) e a partir disso, setamos para o $row criar uma nova linha, preenchendo o campo email a partir do dado que veio do formulário e logo após, gravar no banco com o save();
Espero que tenham entendido o conceito. Qualquer dúvida, comentem esse post.