Connexion à une base de données dans Symfony via PostgreSQL

PostGreSQLTransparency

L’objectif de ce tutoriel est d’établir une connexion à une base de données via Doctrine dans Symfony grâce à PostgreSQL.

Sommaire

Prérequis

Installer doctrine

Pour établir une connexion à une base de données dans Symfony, il faut installer le bundle doctrine :

 composer require doctrine
 

Paramétrer Xampp

Pour utiliser PostgreSQL via Xampp, on va activer une extension :

C:\Xampp\p\php.ini

 extension=pdo_pgsql # Décommentez cette ligne
 

Créer la connexion

On va démarrer PgAdmin pour configurer PostgreSQL, lancez l’application puis cliquez sur “Create > Server” :
create Server illustration
Donnons un nom à notre connexion au serveur PostgreSQL (DATABASE_NAME) :
Renseignons l’onglet “connection” avec les informations de connexion à PostgreSQL :
database configuration postgres
Et le résultat de la configuration :
database configuration postgres

Créer la base de données

Pour créer la base de données, il suffit de faire un clic droit sur databases puis  “Create > Database
create database postgres config
On créer la base ldap_demo puis on clique sur “save” :
create database postgres config
Et le résultat de la configuration :
postgres configuration database created

Configurer la connexion dans Symfony

Dans Symfony, il faut utiliser le fichier de configuration de doctrine pour paramétrer la base de données :

config/doctrine.yaml

 doctrine: 
    dbal: 
        url: '%env(DATABASE_URL)%' # IMPORTANT: You MUST configure your server version, # either here or in the DATABASE_URL env var (see .env file) 
        driver: 'pdo_pgsql'
        server_version: '13.3' 
        charset: utf8 
        mapping_types:
            status_enum: string ...
 
L’url de connexion à la base de données est configurée dans le fichier d’environnement :

.env

 DATABASE_URL="postgresql://compte-adminDB:passwordAdminDB@127.0.0.1:5432/ldap_demo??serverVersion=13.3&charset=utf8"
 

Tester la connexion

Pour confirmer que la connexion à la base de données est bonne, vous pouvez créer une entité  :
 php bin/console make:entity
 
Puis on crée physiquement la base dans PostgreSQL  :
 php bin/console d:s:c
 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *