quarta-feira, 5 de outubro de 2011

Zend Framework conectando com banco de dados

Bom dia Pessoas, hoje vou mostrar para vocês como fazer uma conexão com o banco de dados usando o Zend Framework.
O banco de dados que estou usando aqui é o MySql, tenho apenas uma tabela chamada usuario, com 2 campos, id e nome.Fiz essa tabela apenas para mostrar como pegar os dados de uma tabela e mostrar na tela.

Vamos no arquivo application.ini que fica na pasta configs, nesse arquivo vamos colocar o seguinte código


  1. resources.db.adapter = "pdo_mysql"
  2. resources.db.params.host = "localhost"
  3. resources.db.params.username = "root"
  4. resources.db.params.password = ""
  5. resources.db.params.dbname = "blog"

esse é o código que estou usando, aqui está o link para você saber mais sobre a configuração
http://framework.zend.com/manual/en/zend.config.adapters.ini.html


o proximo passo é fazer a conexão, mas vou fazer de uma maneira diferente, vou criar uma pasta chamada models e dentro dela vou criar mais 3 pastas como nome de Dao,Table,Entity.A estrutura ficou assim



Agora vamos para a pasta table, vamos criar o arquivo com nome Usuario e nesse arquivo colque o código


  1. class Application_Model_Table_Usuario extends Zend_Db_Table_Abstract {
  2.  
  3.     protected $_name = 'usuario';
  4.     protected $_primary = 'id';
  5.  
  6. }

a variável $_name é o nome da tabela e $_primary é a chave primaria.

vamos na pasta entity e criar o arquivo Usuario e nesse arquivo coloque o código


  1. class Application_Model_Entity_Usuario {
  2.     private $id;
  3.     private $nome;
  4.    
  5.     public function getId() {
  6.         return $this->id;
  7.     }
  8.  
  9.     public function setId($id) {
  10.         $this->id = $id;
  11.     }
  12.  
  13.     public function getNome() {
  14.         return $this->nome;
  15.     }
  16.  
  17.     public function setNome($nome) {
  18.         $this->nome = $nome;
  19.     }
  20.    
  21. }

esses são os getter e os setter, no exemplo que estou dando não vou precisar usar nenhum get ou set, caso você queira fazer alguma coisa diferente está ai o exemplo.

agora na pasta Dao vamos criar o arquivo também com o nome de usuario com o seguinte código


  1. class Application_Model_Dao_Usuario {    
  2.     public function buscarNome(){
  3.         $this->table = new Application_Model_Table_Usuario();
  4.         return $this->table->fetchAll();
  5.     }  
  6. }


agora vamos no controller, nesse exemplo estou fazendo tudo no indexController


  1. class IndexController extends Zend_Controller_Action
  2. {
  3.     public function init()
  4.     {
  5.         /* Initialize action controller here */
  6.     }
  7.  
  8.     public function indexAction()
  9.     {
  10.         $this->result = new Application_Model_Dao_Usuario();
  11.         $this->view->teste = $this->result->buscarNome();
  12.     }
  13. }

agora só falta mostrarmos o resultado na tela, desse jeito


  1. <?php
  2. foreach ($this->teste as $key):
  3.     ?>
  4.     Nome:<?php echo $key['nome']; ?><br/>
  5.     <?php
  6. endforeach;
  7. ?>


dessa maneira já é possível acessar o banco de dados com o Zend, existem outras maneiras de mostrar um dado que vem do banco, mas é desse jeito que faço atualmente.
Espero ter ajudado e até a próxima





Um comentário:

  1. Cara valeu fiquei 1 mês procurando algum post que me falasse como conecta realmente no banco de dados

    Continue com os artigos e parabéns

    ResponderExcluir