Un ensemble de composants dév pour php4 doivent tourner sous PHP3.
Ils comportent des "require_once/include_once" non pris en compte en
php3.
les composants "requirés_once" sont des classes.
Y-aurait-il un moyen de savoir si une classe a déjà été définie ou pas
(ceci en php3 :))
Guillaume Bouchard , le 08 août 2003 16:45:26, écrivait ceci:
J'ia un doute. Les class ca existait en php3 ?
Non c'est apparu avec PHP4.
john gallet
Bonjour,
Un ensemble de composants dév pour php4 doivent tourner sous PHP3. C'est pas gagné c't'affaire...
Tu auras bien de la chance si ce n'est **que** require/include_once qui sont utilisés de spécifique php4 vs php3.
Y-aurait-il un moyen de savoir si une classe a déjà été définie ou pas (ceci en php3 :)) Hum. Il y a bien les get_defined_ mais de toutes façons c'est en php
4.04 et je ne vois rien pour les classes. La notion de classe existait déjà syntaxiqueemnt, mais avec un héritage buggé jusqu'en 4.0x (4.06 je crois).
Si tu veux vraiment essayer tu peux toujours définir une fonction require_once() qui fait appel à require, definie dans un fichier en auto_prepend. Pour gérer les doublons potentiels, deux solutions :
1) gérer un tableau statique des noms de fichiers déjà inclus, avec le problème des chemins relatifs absolus etc... Il faudra peut-être en venir à stocker plutôt un md5 du fichier inclus que son nom.
2) modifier les fichiers includes et ajouter simplement : if(defined(IDENTIFIANT_UNIQUE_DU_FICHIER)=úLSE) { define("IDENTIFIANT_UNIQUE_DU_FICHIER","blabla") //ici le reste du fichier tel quel
}
Enfin bref, le plus simple sera sans doute... d'installer php4.
a++ JG
Bonjour,
Un ensemble de composants dév pour php4 doivent tourner sous PHP3.
C'est pas gagné c't'affaire...
Tu auras bien de la chance si ce n'est **que** require/include_once qui
sont utilisés de spécifique php4 vs php3.
Y-aurait-il un moyen de savoir si une classe a déjà été définie ou pas
(ceci en php3 :))
Hum. Il y a bien les get_defined_ mais de toutes façons c'est en php
4.04 et je ne vois rien pour les classes. La notion de classe existait
déjà
syntaxiqueemnt, mais avec un héritage buggé jusqu'en 4.0x (4.06 je
crois).
Si tu veux vraiment essayer tu peux toujours définir une fonction
require_once() qui fait appel à require, definie dans un fichier en
auto_prepend.
Pour gérer les doublons potentiels, deux solutions :
1) gérer un tableau statique des noms de fichiers déjà inclus, avec le
problème des chemins relatifs absolus etc... Il faudra peut-être en
venir à stocker plutôt un md5 du fichier inclus que son nom.
2) modifier les fichiers includes et ajouter simplement :
if(defined(IDENTIFIANT_UNIQUE_DU_FICHIER)=úLSE)
{
define("IDENTIFIANT_UNIQUE_DU_FICHIER","blabla")
//ici le reste du fichier tel quel
}
Enfin bref, le plus simple sera sans doute... d'installer php4.
Un ensemble de composants dév pour php4 doivent tourner sous PHP3. C'est pas gagné c't'affaire...
Tu auras bien de la chance si ce n'est **que** require/include_once qui sont utilisés de spécifique php4 vs php3.
Y-aurait-il un moyen de savoir si une classe a déjà été définie ou pas (ceci en php3 :)) Hum. Il y a bien les get_defined_ mais de toutes façons c'est en php
4.04 et je ne vois rien pour les classes. La notion de classe existait déjà syntaxiqueemnt, mais avec un héritage buggé jusqu'en 4.0x (4.06 je crois).
Si tu veux vraiment essayer tu peux toujours définir une fonction require_once() qui fait appel à require, definie dans un fichier en auto_prepend. Pour gérer les doublons potentiels, deux solutions :
1) gérer un tableau statique des noms de fichiers déjà inclus, avec le problème des chemins relatifs absolus etc... Il faudra peut-être en venir à stocker plutôt un md5 du fichier inclus que son nom.
2) modifier les fichiers includes et ajouter simplement : if(defined(IDENTIFIANT_UNIQUE_DU_FICHIER)=úLSE) { define("IDENTIFIANT_UNIQUE_DU_FICHIER","blabla") //ici le reste du fichier tel quel
}
Enfin bref, le plus simple sera sans doute... d'installer php4.
a++ JG
LPA
Il te suffit de déclarer en global une variable dans le constructeur de ta classe et ensuite, tu ne crée ton objet que si la variable n'existe pas.
Un ensemble de composants dév pour php4 doivent tourner sous PHP3. Ils comportent des "require_once/include_once" non pris en compte en php3. les composants "requirés_once" sont des classes. Y-aurait-il un moyen de savoir si une classe a déjà été définie ou pas (ceci en php3 :))
Merci d'avance
Il te suffit de déclarer en global une variable dans le constructeur de ta
classe et ensuite, tu ne crée ton objet que si la variable n'existe pas.
"Nini" <annie.matteo@wanadoo.fr> wrote in message
news:70374bc4.0308080420.66978859@posting.google.com...
Bonjour,
Un ensemble de composants dév pour php4 doivent tourner sous PHP3.
Ils comportent des "require_once/include_once" non pris en compte en
php3.
les composants "requirés_once" sont des classes.
Y-aurait-il un moyen de savoir si une classe a déjà été définie ou pas
(ceci en php3 :))
Un ensemble de composants dév pour php4 doivent tourner sous PHP3. Ils comportent des "require_once/include_once" non pris en compte en php3. les composants "requirés_once" sont des classes. Y-aurait-il un moyen de savoir si une classe a déjà été définie ou pas (ceci en php3 :))