IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Utiliser les schémas Postgresql avec Symfony 4 [4.x]


Sujet :

Symfony PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2018
    Messages : 3
    Points : 7
    Points
    7
    Par défaut Utiliser les schémas Postgresql avec Symfony 4
    Bonjour à tous !

    Devant créer une API Restful (pour remettre à neuf une plateforme), je suis partie sur symfony 4. Grâce au bundle FosRestbundle, la partie développement est grandement facilitée. Je rencontre cependant un problème.
    En l'état actuel, la plateforme possède une base MySql par client. Après plusieurs recherches, dans un souci de performance et de sécurité, il me semble judicieux d'exploiter les capacités qu'offrent Postgresql et son concept de schémas (un schéma commun, un schéma identique par client). Cependant, la mise en place du multi-schémas dynamiques s'avère complexe.

    Etant parti sur du Symfony, j'ai essayé de créer un système pour rendre dynamique les annotations de doctrine (exemple : @ORM\Table(name="client1.utilisateur"), ce qui permettrait de cibler la table utilisateur du schéma en question ). J'ai essayé de déclarer une constante pour l'insérer dans l'annotation. Mais ne pouvant récupérer une session avant la déclaration de l'entité, il me semble que ce système est impossible.

    Je suis donc parti voir du côté de POMM (https://afsy.fr/avent/2017/11-non-a-...rez-postgresql). Ce tutoriel est réalisé sous Symfony 3. J'ai pu l'adapter en grande partie sur Symfony 4 mais je suis bloqué. E effet, lorsque je veux appeler une méthode de ma class (exemple : utilisateur), j'ai cette erreur :

    Model class 'App\Db\ApplicationSchema\EventModel' is not registered against the session.
    Ce n'est pas un problème d'instanciation. Je ne comprends ni pourquoi ni comment enregistrer une class en session.

    Auriez-vous une piste ? Auriez-vous déjà travaillé sur un projet similaire (Symfony 3.4/4 + Postgresql et utilisation des schémas dynamiquement) ? Si oui, j'aimerais beaucoup avoir vos retours, des conseils etc.. pour la mise en place de cet environnement !

    Merci beaucoup pour votre aide !

  2. #2
    Membre à l'essai Avatar de JeromeDz
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 14
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    j'ai eu des problèmes similaire et malheureusement, j'ai abandonné Pomm.

    j'ai conservé doctrine et utilise une surcharge proposé ici https://stackoverflow.com/a/10829694/7896062


    a noter que sur 1 de mes projets, j'ai actuellement un probleme lié à ce hack concernant le mapping https://www.developpez.net/forums/d1...synfony-3-4-a/

    mais de façon générale ca fonctionne bien.

    espérant que cela puisse t'aider.

    Bonne journée,
    Jérôme

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Pouvez vous nous montrer comment vous obtenez une instance de votre classe de Model ?

    Amicalement,
    Grégoire

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2018
    Messages : 3
    Points : 7
    Points
    7
    Par défaut
    Bonjour,
    Tout d'abord merci pour vos réponses ! En fait j'ai abandonné doctrine et pomm car le multi schema dynamic n'est vraiment pas aisé avec un orm et pomm n'est pas à jour sur symfony 4. J'ai donc repris le principe mais en faisant moi même une connexion pdo à postgresql, je créer les model représentant les tables, les controllers, les form et les manager pour chaque class. Le résultat a l'air vraiment super, le développement est plus long qu'avec un orm mais le résultat attendu est m'a l'air nickel pour le moment. Grâce à un parametre dans l'URL et une génération de token, le multi schema dynamique à l'air de fonctionner à merveille !
    Merci à vous 😊 !
    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PostgreSQL] Architecture avec les schémas Postgresql
    Par Logarithmix dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/07/2013, 22h11
  2. [VBA]Utiliser les fonctions Excel avec Access
    Par PsykotropyK dans le forum VBA Access
    Réponses: 8
    Dernier message: 18/04/2007, 13h58
  3. Utiliser les pages PHP avec XAMPP
    Par god_enel dans le forum Langage
    Réponses: 8
    Dernier message: 15/01/2007, 10h40
  4. Comment utiliser les fichiers *.PNG avec Delphi ?
    Par HopeLeaves dans le forum Composants VCL
    Réponses: 2
    Dernier message: 17/09/2005, 20h59
  5. Comment utiliser les styles XP avec Dev-C++?
    Par abraxas dans le forum Dev-C++
    Réponses: 3
    Dernier message: 05/10/2003, 19h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo