Modérateur PHPfrance |
8758 Messages
05 déc. 2016, 12:10
salut,
tu peux prendre modèle sur ce que fait PDO et ne faire le bind qu'a la demande de l’exécution.
je vois deux arguments cotre ce que tu fais :
- Cela n'apporte pas de valeur ajouté aux extensions PDO et Mysqli (les deux sont objet
- Cela complexifie l'utilisation (tiens des nouvelles classes ...)
- Tu perd en fonctionnalité (fetchAll etc.)
- Tu ne respecte pas les recommandations PSR-1 et 2
si le but c'est le chaînage des méthodes (comme dans ton exemple) je ne pense pas que cela une bonne idée.
- c'est pas forcément lisible (regarde ton exemple, pas d'espace, tout en une ligne, imagine avec select 10 colonnes et jointure sur 3 tables; le select * c'est pas bien car il ne permet pas de savoir exactement ce que tu souhaites comme colonne et surtout un en ramène souvent trop

).
- c'est un cas peu employé (retourner un élément c'est moins utilisé que retourner des listes).
- tu va faire des tonnes de connexion sur ton serveur mysql, ce qui n'est pas une bonne idée, il y a généralement une limite aux nombres de connexion simultané. Ce n'est pas non plus une bonne idée parce que la connexion c'est souvent le plus long dans la requête.
A limite si tu crée un singleton, voir une factory qui gère un pool de singleton OK. tu pourrais gagner en lisibilité, utiliser plusieurs connexion de façon simple (par exemple : dbFactory->getDB('id de la base'); )
bref pour l'exercice de style pourquoi pas, mais pas à utiliser pour un code maintenable.
Souvient de l'acronyme KISS (Keep it simple, stupide
https://fr.wikipedia.org/wiki/Principe_KISS). Il y a cela aussi
YAGNI, mais le 1er est plus adapté
@+
Il en faut peu pour être heureux ......