Pour commencer, il faut activer les pilotes PostgreSQL pour permettre à PHP d’accéder aux bases de données PostgreSQL.
Les pilotes pgsql et pdo_pgsql sont nécessaires.
Si vous utilisez une solution comme WAMP, Laragon, Easy PHP, les pilotes sont simplement désactivés et les fichiers DLL nécessaires sont présents dans le répertoire ‘ext’ de votre dossier php utilisé.
Dans tous les cas, il faut dé-commenter les lignes suivantes dans votre fichier de configuration php.ini:
Note: pour localiser votre fichier php.ini utilisé, vous pouvez ouvrir un terminal dans le dossier de votre projet php et taper la commande php –ini.
Pour s’assurer de l’activation de ces pilotes, vous pouvez tapez la commande « php -i« . Si tout s’est bien passé, vous devriez voir apparaître ces lignes dans la sortie :
II. Configurer Symfony
Il faut se rendre dans le fichier doctrine.yml situé à la racine de votre projet dans config/packages.
Remplacez le driver utilisé par pdo_pgsql et les références à utf8mb4 (qui est l’encodage par défaut de MySQL) en utf8:
III. Connexion ou création de la base de données
Dans tous les cas, ouvrez le fichier .env situé à la racine de votre projet.
Changez la constante DATABASE_URL par les données adéquates:
Note: le port 5432 est le port par défaut utilisé par PostgreSQL.
Le nom de la base de données peut faire référence à la base de données à laquelle vous souhaitez vous connecter ou alors au nom de la base de données que vous souhaitez créer.
Si vous souhaitez créer la base de données exécutez la commande à la racine de votre projet:
php bin/console doctrine:database:create
IV. Vérification que la connexion est établie
Il y a probablement des moyens plus élégants de le faire (n’hésitez pas à le dire en commentaire si vous en connaissez 😉 ) mais pour tester le fait que la connexion est fonctionnelle, vous pouvez exécuter à la racine de votre projet la commande:
php bin/console doctrine:query:sql 'SELECT 1'
S’il n’y a pas d’erreur, c’est que vous êtes bien connecté! 🙂
J’ai l’erreur suivante après activer les pilotes PostgreSQL dans le fichier php ini de WAMP :
– SQLSTATE[08006] [7] SCRAM authentication requires libpq version 10 or above
Le problème vient probablement du fait que la version de PostgreSQL que tu utilises a besoin de scram-sha-256 pour chiffrer les mots de passes. Pour régler le problème, je te propose 2 pistes:
* Si le scram-sha-256 n’est pas un impératif, on peut essayer de mettre « password_encryption = md5 » dans le fichier ph_hba.conf puis relancer pgAdmin.
* On peut essayer de monter la version de la lib: libpq.dll
Pour voir la version de libpq utilisée, tu peux aller sur http://localhost:8080/?phpinfo=-1 (en remplaçant 8080 par le port utilisé par ton serveur Apache). La solution la plus simple si tu utilises WAMP et que tu ne veux pas t’embêter est d’utiliser une version php plus à jour. A priori les versions php7.3+ devraient proposées par défaut une version de libpq > 10.
Pour info, le dll de libpq est installé par défaut dans wamp64/bin/php/version_de_php_utilisée.
En basculant sur PhpStorm, j'ai été surpris de constater que les annotations n'étaient pas nativement prises en charge par l'IDE.
En effet, PhpStorm ne va pas vous proposer d'ajouter automatiquement les imports nécessaires à vos annotations et va les considérer comme "inutiles".
Cela signifie que même si vous rajoutez les imports manuellement, ils seront supprimés automatiquement a...
Vous venez de créer votre projet Symfony 5 et vous voulez à présent le démarrer en local, cet article est fait pour vous :) On va voir toutes les solutions qui s'offrent à vous ( et il y en a beaucoup ! ) pour démarrer votre projet.
Qu'est ce qu'il vou...
Il y a plus d'un an, nous avions fait un article équivalent pour Symfony 4. Si vous l'avez lu, vous ne serez pas dépaysé, la démarche est quasiment identique !
Aujourd'hui on va voir pas à pas comment établir une connexion vers une base de données Post...
Lorsque vous voulez créer un projet avec une version spécifique de Symfony, vous pouvez le faire via le bin de Symfony ou avec Composer.
Nous allons supposer dans cet article que nous voulons installer Symfony version X.X.
I. Première méthode: avec l...
Merciiiiii
Hello,
J’ai l’erreur suivante après activer les pilotes PostgreSQL dans le fichier php ini de WAMP :
– SQLSTATE[08006] [7] SCRAM authentication requires libpq version 10 or above
Quelqu’un a t-il une idée svp ?
Merci !
Le problème vient probablement du fait que la version de PostgreSQL que tu utilises a besoin de scram-sha-256 pour chiffrer les mots de passes. Pour régler le problème, je te propose 2 pistes:
* Si le scram-sha-256 n’est pas un impératif, on peut essayer de mettre « password_encryption = md5 » dans le fichier ph_hba.conf puis relancer pgAdmin.
* On peut essayer de monter la version de la lib: libpq.dll
Pour voir la version de libpq utilisée, tu peux aller sur http://localhost:8080/?phpinfo=-1 (en remplaçant 8080 par le port utilisé par ton serveur Apache). La solution la plus simple si tu utilises WAMP et que tu ne veux pas t’embêter est d’utiliser une version php plus à jour. A priori les versions php7.3+ devraient proposées par défaut une version de libpq > 10.
Pour info, le dll de libpq est installé par défaut dans wamp64/bin/php/version_de_php_utilisée.
J’espère que ça t’aidera 🙂
Incroyable, vous êtes les premiers dans ma recherche : https://www.google.com/search?q=doctrine+postgresql
Merci pour l’article 😉