Documentação do Symfony2
Renderizada do repositório symfony-docs-pt-BR no Github
Note
Este artigo é sobre a camada DBAL do Doctrine. Normalmente, você vai trabalhar com a camada de alto nível ORM do Doctrine, que simplesmente usa o DBAL, nos bastidores, para comunicar-se com o banco de dados. Para ler mais sobre o ORM Doctrine, consulte “Bancos de Dados e Doctrine”.
A Camada de Abstração de Banco de Dados Doctrine (DBAL) é uma camada de abstração que fica situada no topo do PDO e oferece uma API intuitiva e flexível para se comunicar com os bancos de dados relacionais mais populares. Em outras palavras, a biblioteca DBAL torna mais fácil a execução de consultas e de outras ações de banco de dados.
Tip
Leia a Documentação oficial do DBAL para aprender todos os detalhes e as capacidades da biblioteca DBAL do Doctrine.
Para começar, configure os parâmetros de conexão do banco de dados:
Para ver todas as opções de configuração do DBAL, consulte Configurações do Doctrine DBAL.
Você pode acessar a conexão DBAL do Doctrine acessando o serviço database_connection:
class UserController extends Controller
{
public function indexAction()
{
$conn = $this->get('database_connection');
$users = $conn->fetchAll('SELECT * FROM users');
// ...
}
}
Você pode registrar tipos de mapeamento personalizados através de configuração do symfony. Eles serão adicionados à todas as conexões configuradas. Para mais informações sobre tipos de mapeamento personalizados, leia a seção Tipos de Mapeamento Personalizados na documentação do Doctrine.
O SchemaTool é usado para inspecionar o banco de dados para comparar o esquema. Para realizar esta tarefa, ele precisa saber que tipo de mapeamento precisa ser usado para cada um dos tipos do banco de dados. O registro de novos pode ser feito através de configuração.
Vamos mapear o tipo ENUM (por padrão não suportado pelo DBAL) para um tipo de mapeamento string: