Connexion à une base de données dans Symfony via PostgreSQL
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” :
Donnons un nom à notre connexion au serveur PostgreSQL (DATABASE_NAME) :
Renseignons l’onglet “connection” avec les informations de connexion à PostgreSQL :
Et le résultat de la configuration :
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”
On créer la base ldap_demo puis on clique sur “save” :
Et le résultat de la configuration :
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"
@1DevFullStack
Notre url correspond à la base de données "ldap_demo" avec nos identifiants de connexion administrateur.
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
@1DevFullStack
d:s:c est un raccourci, la commande originale est doctrine:schema:create. Cette commande permets de créer des tables directement depuis Symfony. Si la commande réponds sans erreur, alors la connexion est effective !