CLASSE PHP4 DE CONNEXION À UN SGBD

gr43
Messages postés
95
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
8 septembre 2010
- 21 mai 2008 à 15:35
gr43
Messages postés
95
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
8 septembre 2010
- 11 juin 2008 à 13:47
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/46721-classe-php4-de-connexion-a-un-sgbd

gr43
Messages postés
95
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
8 septembre 2010

11 juin 2008 à 13:47
Merci, à tous de vos commentaire, c'est sympa de pouvoir confronter ses idées et c'est comme ça que l'on apprend.
A plus
neigedhiver
Messages postés
2480
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
19
11 juin 2008 à 12:16
Ca dépend de ce que tu appelles une factory...
Pour moi, c'est au minimum une méthode statique. Mais ça pourrait aussi être une classe statique.

$base = BASE::load (NOM, MDP, BASE, SERVEUR, SGBD);

La méthode statique load est une factory : c'est elle qui va instancier la bonne classe en fonction de ce que tu lui demandes.

"je suis en PHP5 mais le serveur est en PHP4"

T'as pas à avoir honte : je suis dans le même cas, au boulot (on choisit pas tout, et surtout, faire des mises à jours aussi importantes sur plusieurs serveurs en prod, ça nécessite de faire quelques tests, et pour ça, faut avoir du temps)
gr43
Messages postés
95
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
8 septembre 2010

10 juin 2008 à 18:25
Je veux dire, le serveur est en PHP4, il va me rendre fou.
Tchao
gr43
Messages postés
95
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
8 septembre 2010

10 juin 2008 à 18:20
Hello,
je pensais à une factory du type :(vue sur php.net)
class Exemple
{
// La méthode de paramètre d'usine
public static function factory($type)
{
if (include_once 'Drivers/' . $type . '.php') {
$classname = 'Driver_' . $type;
return new $classname;
} else {
throw new Exception ('Driver non trouvé');
}
}
}
Ce qui m'éviterai d'inclure les différentes classes dans mon fichier d'inclusion mais seulement la classe mère, elle même se chargeant de charger le driver du sgbd souhaité lors d'une instanciation.
Ouais, désolé je plane pour E_STRCIT mais c'est par ce qu'en local (je suis quand même pas tout à fait maso), je suis en PHP5 mais le serveur est en PHP5. Mais j'essaye de coder avec le moins de syntaxe obsolète possible... (je sais bonne blague pour du PHP4).
neigedhiver
Messages postés
2480
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
19
10 juin 2008 à 14:09
Salut,

"Mais par contre, autant utilisé une factory pour permettre le chargement à la volée de la sous-classe utilisé, non?'"
Ca ne revient pas à ça, c'est exactement ça... La méthode statique load est la factory de ta classe dans ton cas.

"Par contre appelée la méthode load de façon static alors qu'elle n'est pas déclarée static car PHP4, cela me fait une erreur E_STRICT sur PHP5"
Autant écrire une classe PHP4 et une classe PHP5... Quitte à utiliser PHP5, autant l'utiliser pour de vrai, plutôt que de se limiter à une utilisation archaïque.
Afficher les 33 commentaires