Bonjour,

Voila je suis la formation Mise en pratique de la POO en PHP et j'aimerais y ajouter de l'ajax dans l'administration (pour la recherche, le trie...)
J'ai donc créé une class (AjaxAction) et des fonctions pour que les autre classes soit charger et executer. Jusque la pas de soucis.
Le problème arrive quand je veux appeler une fonction qui doit se connecter à la base de donner pour récupérer une information.
Je n'arrive pas à comprendre comment je peux faire passer les informations de PDO à l'ajax.
J'ai bien trouver une solution qui consiste à créer une fonction (getPDO()) que j'ai rajouter à ma classe AjaxAction mais cela ne me parait pas très propre et si un jour je veux changer de BDD il faudras que je modifie le fichier de config plus celui qui se trouve dans AjaxAction.

Je suis pas sur d'être très clair dans mon explication, mais si quelqu'un comprend ;) et veux bien m'expliquer je suis preneur.

Merci pour votre aide.

4 réponses


Injection de dépendance, tu créer un singleton database qui vas contenir toute les methodes d'appel a la connection de ta base, tu l'inject dans ton constructeur et tu aura acces a toute les methode de ton singleton dans la class, du coup si tu change de db, il suffit de changer ton singleton et c'est tous.

je te renvoie à la video de grafikart sur le singleton dans la formation php

Merci beaucoup Defy sa fonctionne impécable.
Par contre avant de cloturer le sujet je vais dévelloper un peu ur l'ajax.
Je n'arrive pas à comprendre pourquoi quand j'utilise l'ajax les fonctions principales du site ne fonctionne pas.
Un exemple pour bien comprendre.

J'ai créer une classe i18n pour le language avec une fonction texte pour le choix du texte, pluriel....
Dans le site tout fonctione, par contre quand je met ma fonction texte dans le fichier appeler par ajax la j'ai une erreur. Il me dit qu'il ne connait pas la fonction et c'est la même chose pour twig, les extensions twig et autres fonctions ou classes.

Ce que j'aimerais comprende c'est est-ce que c'est le fonctionement normal d'ajax ou moi qui est fait une erreur quelque part.

Merci

Salut,
J'vois pas l'code, mais j'affirme que c'est toi qui fais un bourde quelque part ;)

@plus
Pierre

Bon alors je ne sais pas pourquoi je me suis pris la tête comme ça alors qu'il suffisait de créer une route dans mon module.
Tout fonctione impécable (enfin presque).
Si je fait une requete ajax en GET pas de soucis. Par contre si je fait la requête en POST la j'ai un problème avec mon CSRFMiddelware.
En fait il me dit que le token est invalide.
Ma question : comment je peux faire une requete post en ajax et lui envoyer le bon token.

d'avance merci