Se você está desenvolvendo aplicações em PHP que interagem com bancos de dados, provavelmente já ouviu falar sobre PDO (PHP Data Objects) e DAO (Data Access Object). Mas o que exatamente são esses conceitos e como eles podem ajudar no seu desenvolvimento? Vamos explorar PDO-DAO em PHP!

O que é PDO?

PDO é uma extensão do PHP que fornece uma interface consistente para acessar bancos de dados. Ele permite que você execute consultas SQL de forma segura e eficiente, independentemente do tipo de banco de dados (MySQL, PostgreSQL, SQLite, etc.). A principal vantagem do PDO é sua capacidade de prevenir SQL Injection, uma das vulnerabilidades mais comuns em aplicações web.

Características do PDO:

  • Interface unificada: Um único conjunto de funções para diferentes bancos de dados;

  • Suporte a prepared statements: Permite executar consultas de forma segura e eficiente;

  • Flexibilidade: Você pode facilmente mudar de um banco de dados para outro sem alterar o código da aplicação.

O que é DAO?

DAO é um padrão de design que fornece uma abstração entre a lógica de negócios da sua aplicação e a lógica de acesso a dados. A ideia principal do DAO é separar a manipulação dos dados da lógica do aplicativo, tornando o código mais organizado, testável e fácil de manter.

Características do DAO:

  • Abstração: Separa a lógica de acesso a dados da lógica de negócio;

  • Encapsulamento: Facilita a mudança de implementação de armazenamento de dados sem afetar a lógica do aplicativo.

Como usar o PDO-DAO em PHP

É possível alterar o sistema de banco de dados sem a necessidade de alterar o código que utiliza DAO para fazer o acesso:

Arquivo sql.php:

 class Sql extends PDO {
  
  private $conn;
  
  //Método construtor para que, quando a classe for instanciada, a conexão seja feita automaticamente
  public function __construct() {
	
   //Faz a conexão 	  
   $this->conn = new PDO("mysql:host=localhost;dbname=nomedb", "root", "");     
  }
  
  //Função para associar os parâmetros (bind) ao comando prepare
  private function setParams($statment, $parameters = array()) {
   foreach ($parameters as $key => $value) {
    $this->setParam($key, $value);
   }
  }
  
  //Método para fazer o bind de um parâmetro apenas
  private function setParam($statment, $key, $value) {
   $statment->bindParam($key, $value);   
  }
  
  /* Função para executar os comandos SQL 
  ($rawQuery: comando SQL; $params: dados que serão recebidos e armazenados em um array */
  public function query($rawQuery, $params = array()) {
   
   //Statement que prepara o comando
   $stmt = $this->conn->prepare($rawQuery);
	
   //Associa os parâmetros ao comando prepare	
   $this->setParams($stmt, $params);
	 
   $stmt->execute();	 
    return $stmt;
   }
	
  public function select($rawQuery, $params = array()):array {
	 
  $stmt = $this->query($rawQuery, $params);	 
   return $stmt->fetchAll(PDO::FETCH_ASSOC); 
   }	
 } 

Arquivo config.php:

  spl_autoload_register(function($class_name){
	  
  $filename = $class_name.".php";
	  
  if(file_exists(($filename))){
   require_once($filename);
  }
  });

Arquivo index.php:

  require_once("config.php");
  
  $sql = new Sql();  
  $usuarios = $sql->select("SELECT * FROM tb_usuarios");
  
  echo json_encode($usuarios); 

Integrar PDO e DAO em suas aplicações PHP traz benefícios significativos em termos de segurança, organização e manutenção. Ao seguir as boas práticas de design, você pode construir aplicações mais robustas e fáceis de gerenciar. Se você ainda não utiliza esse padrão, agora é o momento ideal para começar!

QUER APRENDER PHP ORIENTADO A OBJETOS OU APERFEIÇOAR O QUE JÁ SABE?

Então conheça o curso online que já ajudou milhares de pessoas a aprender a programar e desenvolver seus próprios projetos do ZERO e usando orientação a objetos de uma forma fácil de entender.

CLIQUE NA IMAGEM ABAIXO E SAIBA MAIS:

CLIQUE AQUI E SAIBA MAIS

Dúvidas ou sugestões sobre PDO-DAO em PHP? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Tags: |

Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?

Não enviamos spam. Seu e-mail está 100% seguro!

Sobre o Autor

Bene Silva Júnior
Bene Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *