Zend Framework

Utilizando Zend_Db_Table_Abstract do Zend Framework

Por em

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.