Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/09/2007, 11h31   #1
Membre du Club
 
Inscription : avril 2007
Messages : 233
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2007
Messages : 233
Points : 60
Points : 60
Par défaut [POO] Rendre les classes php5 fonctionnelles sur php4

bonjour tout le monde

J'ai un souci concernant l'implémentation des classes php5 en php4, et j'aimerai savoir s'il y'a moyen que mon code en php5 soit fonctionnelle sur des versions antérieurs de php..

Merci
namstou3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2007, 11h43   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Tout dépend du niveau de complexité de tes classes en fait...
Parfois il suffit de modifier tous les private/public/protected en var pour que ca fonctionne, mais je crois que tu peux avoir d'autres problemes sur la surcharge, le constructeur etc.
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2007, 11h51   #3
Membre du Club
 
Inscription : avril 2007
Messages : 233
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2007
Messages : 233
Points : 60
Points : 60
Voilà un exemple de classe que j'utilise:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
class myconnect {
	private $server; //  nom du serveur mysql
	private $user; //nom de l'administrateur
	private $password; // password de l'administrateur
	private $database; // nom de la base de données à manipuler
 
	public $querySql; // chaîne string qui va représenter la requête SQL elle-même
 
	private $error; // récupérer le message d'erreur transmis lors de la connexion mysql
	private $error_no; // récupérer le code d'erreur
	private $true_select = FALSE; // permettra de vérifier si la requête SQL commence par select ...
 
	private $nb_arg_construct; // nombre d'arguements du constructeur
 
	private $numrows; // nombre de lignes pour le résultat
	private $numfields; // nombre de champs
 
	private $array_datas; // tableau contenant toutes les valeurs des enregistrements
	private $array_fields; // tableau contenant les noms des champs lors de la requête
 
	private $link; // identifiant de la ressource mysql
	private $success; // attribut qui va garantir la sélection correcte de la BD
	private $result; // attribut qui va stocker le résultat de ma requête SQL
 
 
// déclarer le constructeur
public function __construct($nameserver,$nameuser,$namepassword,$namedatabase)
{
 
	session_start();
	$this->nb_arg_construct = func_num_args();
	if ( $this->nb_arg_construct != 4 ) {
	}
	else {
	// le nombre d'arguments est correct
	// assignation des attributs de l'objet avec les variables transmises
	$this->server = $nameserver;
	$this->user = $nameuser;
	$this->password = $namepassword;
	$this->database = $namedatabase;
	// vérifier les données transmises
 
 
	// faire notre connexion avec la fonction mysql_connect
	$this->link = @mysql_connect($this->server,$this->user,$this->password);
	if (!$this->link) {
	$this->error = mysql_error($this->link);
	$this->error_no = mysql_errno($this->link);
			}
		else {
		// sélectionner la base de données
		$this->success = @mysql_select_db($this->database,$this->link);
		if (!$this->success) {
		$this->error = mysql_error($this->link);
		$this->error_no = mysql_errno($this->link);
		}
 
	}
 
} //fin if test arguments
} //fin constructeur
j'utilise cette classe pour la connexion à la bdd
namstou3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2007, 11h55   #4
Rédacteur
 
Avatar de Yoteco
 
Alain Sahli
Ingénieur développement logiciels
Inscription : décembre 2004
Messages : 1 086
Détails du profil
Informations personnelles :
Nom : Alain Sahli
Âge : 25

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2004
Messages : 1 086
Points : 1 479
Points : 1 479
Ben t'enlèves tous les type private, protected et public et remplacer par var et sa devrait marcher. C'est ce que koopajah t'as dis.
Yoteco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2007, 12h00   #5
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
tu vas aussi avoir un probleme avec le constructeur, il me semble que __construct() ne marche que depuis PHP5 (j'ai regardé vite fait mais je n'arrive pas à l'affirmer )
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2007, 13h11   #6
Membre du Club
 
Inscription : avril 2007
Messages : 233
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2007
Messages : 233
Points : 60
Points : 60
donc ça serai mieux que je mette function myconnect (..) pour le constructeur??
namstou3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2007, 13h13   #7
Membre actif
 
Homme
Développeur Web
Inscription : juillet 2007
Messages : 194
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juillet 2007
Messages : 194
Points : 189
Points : 189
Citation:
Envoyé par namstou3 Voir le message
donc ça serai mieux que je mette function myconnect (..) pour le constructeur??
Oui, car __construct n'est pas reconnu en PHP4
metfan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2007, 13h48   #8
Membre du Club
 
Inscription : avril 2007
Messages : 233
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2007
Messages : 233
Points : 60
Points : 60
ok merci beaucoup les gars, je vais tester

merci encore une fois pour vos réponse
namstou3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2007, 14h16   #9
Membre du Club
 
Inscription : avril 2007
Messages : 233
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2007
Messages : 233
Points : 60
Points : 60
bon j'ai éffectuer les modifications nécessaires mais ça m'affiche un message d'erreur:

Citation:
Fatal error: Cannot redeclare class myconnect in c:\program files\easyphp\www\espace client(emagin)\inc\classes.php on line 9
la ligne 9 contient la déclaration de la classe myconnect

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class myconnect { //la ligne 9
	var $server; //  nom du serveur mysql
	var $user; //nom de l'administrateur
	var $password; // password de l'administrateur
	var $database; // nom de la base de données à manipuler
 
	var $querySql; // chaîne string qui va représenter la requête SQL elle-même
 
	var $error; // récupérer le message d'erreur transmis lors de la connexion mysql
	var $error_no; // récupérer le code d'erreur
	var $true_select = FALSE; // permettra de vérifier si la requête SQL commence par select ...
 
	var $nb_arg_construct; // nombre d'arguements du constructeur
 
	var $numrows; // nombre de lignes pour le résultat
	var $numfields; // nombre de champs
 
	var $array_datas; // tableau contenant toutes les valeurs des enregistrements
	var $array_fields; // tableau contenant les noms des champs lors de la requête
 
	var $link; // identifiant de la ressource mysql
	var $success; // attribut qui va garantir la sélection correcte de la BD
	var $result; // attribut qui va stocker le résultat de ma requête SQL
......
}
namstou3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2007, 14h19   #10
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
t'as pas fait des require au lieu de require_once quelque part?
on dirait qu'il inclut deux fois ton code et que du coup il dit que la classe myconnect existe deja.
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2007, 14h26   #11
Membre du Club
 
Inscription : avril 2007
Messages : 233
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2007
Messages : 233
Points : 60
Points : 60
j'ai vérifier mais y'a pas de require_once, je crois qu'il y'a autre chose.

En tout cas je te remercie vraiment beaucoup pour tes réponses koopajah
namstou3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2007, 15h03   #12
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
a mon avis, tu as deux fois une instruction du style require(monfichier de class) et du coup ca pose des problemes.
Remplaces par des require_once pour l'inclusion de ta classe
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2007, 15h22   #13
Membre du Club
 
Inscription : avril 2007
Messages : 233
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2007
Messages : 233
Points : 60
Points : 60
merci koopajah ça marche

et merci à vous tous pour vos réponse
namstou3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h59.


 
 
 
 
Partenaires

Hébergement Web