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
<?php
class Prospects extends Zend_Db_Table_Abstract {
protected $_name = 'prospects';
}
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.



















