-
Classe Pour Connexion
Bonjour,
je regarde actuellement plusieurs tuto et livres pour réaliser un site et me connecter à une base de donnée.
* Beaucoup de tuto créent une classe connexion (avec attributs host, port, name, pass inclus dans la classe) + des classes pour déférentes actions
* J'ai un livre ou ils réalise une seule classe connexion (avec attributs host, port, name, pass inclus dans la classe) toutes les actions sont dans cette classe unique.
* Quelques tuto créent une classe connexion, mais avec un fichier config externe pour les variables : host, port, name, pass (mais souvent ne donnent pas la méthode pour les inclures, considèrent que cela n'est pas l'objet du tuto).
Faut-il mieux :
1°) Une classe utilisateur globale (avec connection à la base) + une classe administrateur globale(avec connection à la base)
OU une classe connexion (spécifique) + DES classes utlisateurs pour chaques actions + DES classes administrateur pour chaques actions
2°) Avec un fichier config externe faut-il mieux définir host, port, name, pass, comme des variables ou comme des constantes (niveau sécurité et portabilité dans les classes action) ????
-
Bonjour,
Le principe de la POO est que chaque classe correspond à un besoin particulier, ce qui fait que les classes peuvent être réutilisable d'un projet à l'autre.
1)
Si tu fais une classe unique (Connection + administration + Utilisateur), si tes besoins d'un projet sur l'autre changent vis a vis par exemple de l'utilisateur (pas les memes informations stockés)
tu seras obligés de modifier de fait la page qui gere aussi l'administration + la connexion, ce qui peut entraîner des bugs supplémentaires.
Il vaut mieux avoir une classe connexion qui gere tout ton CRUD (Create, Read, Update, Delete), une classe qui gere les elements utilisateurs (nom, prenom, date de naissance).
et surtout limité au maximum les interdependances entre les classes.
Par exemple, si tu veux créer un nouvel utilisateur en base, il vaut mieux créer la requete SQL au sein de la classe utilisateur et envoyer le resultat à ta classe connexion qui lui se chargera de faire les modifications en base, plutot que de faire faire le travail par ta classe connexion. (J'espere etre clair :/)
2) En principe en variable privées de ta classe connexion, cela suffit largement, normalement tu ne devrais pas avoir besoin de ton user/mdp de base de données en dehors de ta classe connexion, après tu peux très bien les mettres en constante privées, je ne vois pas specialement le danger.
-
Si je comprend bien vouloir faire un fichier externe à ma classe connexion style config.php pour créer des constantes HOST, PASS, LOGIN ne sert à rien.
Faut mieux mettre les constantes directement dans la calsse connexion
-
Un fichier de config peut etre utile pour ne vraiment plus avoir a touché à ta classe de connexion entre deux projets, c'est le cas pour les frameworks où la classe qui gere les connexions est dans le coeur du framework et qu'il serait vraiment casse pied de le modifier.
Pour les petits projets sans trop de complexité tu peut te réduire à mettre les informations de connexions directement dans la classe, surtout si elle n'est pas destiné à etre exporté, sinon il est préférable de créer un fichier de conf bien séparé.
Si tu estime que créer un fichier de configuration rendra la lisibilité de ton projet plus complexe, mieux vaut mettre les informations dans la classe.
Si tu as beaucoup de fichiers et une arborescence un peu complexe, mieux vaut un fichier de configuration dans un dossier facile d'accès.