IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[POO] Rendre les classes php5 fonctionnelles sur php4


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 233
    Points : 94
    Points
    94
    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

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    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.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 233
    Points : 94
    Points
    94
    Par défaut
    Voilà un exemple de classe que j'utilise:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  4. #4
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Par défaut
    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.

  5. #5
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    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 )

  6. #6
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 233
    Points : 94
    Points
    94
    Par défaut
    donc ça serai mieux que je mette function myconnect (..) pour le constructeur??

  7. #7
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2007
    Messages : 193
    Points : 207
    Points
    207
    Par défaut
    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

  8. #8
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 233
    Points : 94
    Points
    94
    Par défaut
    ok merci beaucoup les gars, je vais tester

    merci encore une fois pour vos réponse

  9. #9
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 39

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

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    ......
    }

  10. #10
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    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.

  11. #11
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 233
    Points : 94
    Points
    94
    Par défaut
    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

  12. #12
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    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

  13. #13
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 233
    Points : 94
    Points
    94
    Par défaut
    merci koopajah ça marche

    et merci à vous tous pour vos réponse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] PHP4 -> PHP5 et les classes
    Par Pique dans le forum Langage
    Réponses: 2
    Dernier message: 16/10/2007, 17h55
  2. [POO] Classe php5 et constructeur php4
    Par mathrem dans le forum Langage
    Réponses: 1
    Dernier message: 19/03/2007, 18h10
  3. [POO] méthode de classe PHP5
    Par gregal dans le forum Langage
    Réponses: 7
    Dernier message: 26/04/2006, 12h38
  4. Réponses: 9
    Dernier message: 16/03/2006, 19h05
  5. Réponses: 3
    Dernier message: 23/08/2004, 18h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo