DEV Community

Raphael da Silva
Raphael da Silva

Posted on • Edited on

Uso básico da biblioteca Doctrine DBAL

A biblioteca Doctrine DBAL oferece uma camada adicional por cima da PDO, com isso ela disponibiliza uma API de alto nível que simplifica operações que são mais verbosas e repetitivas com o PDO. Essa API conta com alguns métodos bastante úteis para fazer operações básicas de CRUD.

Criação da conexão

Antes de começar, é preciso instalar a biblioteca com o Composer, para isso é preciso rodar o seguinte comando no terminal:

 composer require "doctrine/dbal" 
Enter fullscreen mode Exit fullscreen mode

Para criar o objeto referente a conexão, a biblioteca disponibiliza o método estático getConnection da classe DriverManager. Esse método espera um array com as credenciais as informações para fazer a conexão com o banco de dados.

 $dbal = \Doctrine\DBAL\DriverManager::getConnection([ 'dbname' => 'nomedobanco', 'user' => 'usuario', 'password' => 'senha', 'host' => 'localhost', 'driver' => 'pdo_mysql', 'driverOptions' => [ PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8' ] ]); 
Enter fullscreen mode Exit fullscreen mode

OBS: a opção definida com a constante MYSQL_ATTR_INIT_COMMAND da PDO serve para que o charset usado seja UTF-8.

Operações de CRUD

Método insert

Parâmetros:

  • Primeiro: nome da tabela do banco de dados.
  • Segundo: array associativo com o nome das colunas e seus valores
 $dbal->insert('noticias', [ 'Titulo' => 'Notícia nova!', 'Texto' => 'Texto da notícia nova.' ]); 
Enter fullscreen mode Exit fullscreen mode

Para obter o id do registro insertido, basta usar o método lastInsertId

$lastInsertId = $dbal->lastInsertId(); 
Enter fullscreen mode Exit fullscreen mode

Método update

Parâmetros:

  • Primeiro: nome da tabela do banco de dados.
  • Segundo: array associativo com o nome das colunas e seus valores.
  • Terceiro: array associativo equivalente a clausula WHERE do SQL.
 $dbal->update('noticias', [ 'Titulo' => 'Notícia nova (atualizada)!', 'Texto' => 'Texto da notícia nova (atualizada).' ], ['Id' => 1]); 
Enter fullscreen mode Exit fullscreen mode

Método delete

Parâmetros:

  • Primeiro: nome da tabela do banco de dados.
  • Segundo: array associativo com a coluna e o valor que será utilizado como critério para a exclusão.
 $dbal->delete('noticias', [ 'Id' => 1 ]); 
Enter fullscreen mode Exit fullscreen mode

Busca de dados

Buscar vários registros:

 $rows = $dbal->fetchAll('SELECT * FROM noticias'); 
Enter fullscreen mode Exit fullscreen mode

Buscar um registro:

 $rows = $dbal->fetchAssoc('SELECT Titulo FROM noticias WHERE Id = :id', [ 'Id' => 1 ]); 
Enter fullscreen mode Exit fullscreen mode

Buscar uma coluna de um registro:

 $title = $dbal->fetchColumn('SELECT Titulo FROM noticias WHERE Id = :id', [ 'Id' => 1 ]); 
Enter fullscreen mode Exit fullscreen mode

Conclusão

A biblioteca Doctrine DBAL é uma ótima opção para o acesso ao banco de dados com PHP. Através dela as operações básicas são simplicadas, o que é de grande ajuda para agilizar as coisas.

Top comments (0)