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] utiliser une méthode présente dans une autre classe


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut [POO] utiliser une méthode présente dans une autre classe
    Bonjour,

    J'ai une classe mère. Dans cette classe, j'aimerai utilisé une méthode présente dans une autre classe. J'avais déjà possé une question similaire, mais je n'avais pas réussie à faire ce que je voulais (héritage).

    Voici ma classe mère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class DisplayFrom {
     
    	[...]
     
    	// Méthode pour afficher un champ date
    	public function fromdate($name,$value,$type,$width,$maxlength,$disabled) 
    	{
    		echo '<script type="text/javascript" src="js/date/calendar.js"></script>';
    		echo '<input onclick="ds_sh(this);" readonly="readonly" style="cursor: text" name="'.$name.'" type="'.$type.'" '.$disabled.' value="'.$this->request($name,$value).'" style="width: '.$width.'px" maxlength="'.$maxlength.'"/>';
    	}
    }
    Et voici ma classe fille :

    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
    <?php
    class Format {
     
            [...]
     
    	public function FormatDate($date, $format = 'fr')
    	{
    		// Méthode pour formater une date EN en FR
    		$r = '^([0-9]{1,4}).([0-9]{1,2}).([0-9]{1,4})$';
    		if($format === 'en')
    		return ereg_replace($r, '\\3-\\2-\\1', $date);
     
    		return ereg_replace($r, '\\3/\\2/\\1', $date);
    	} 
    }
    ?>
    J'aimerai utilisé dans la méthode fromdate() de la classe DisplayFrom, la méthode FormatDate() de la classe Format.

    Pourriez vous expliquer comment faire ?

    Merci d'avance

  2. #2
    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 : 36
    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
    Salut,

    Pas besoin d'héritage ici...

    Il te suffit de faire ça dans ta classe mère:

    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
    <?php
    // Inclusion de ta classe Format
    require_once 'Format.php';
    class DisplayFrom {
     
        [...]
     
        // Méthode pour afficher un champ date
        public function fromdate($name,$value,$type,$width,$maxlength,$disabled) 
        {
            $format = new Format(); // Instanciation de la classe Format
            $format->FormatDate($date); // Puis tu appelles ta méhtode...
            echo '<script type="text/javascript" src="js/date/calendar.js"></script>';
            echo '<input onclick="ds_sh(this);" readonly="readonly" style="cursor: text" name="'.$name.'" type="'.$type.'" '.$disabled.' value="'.$this->request($name,$value).'" style="width: '.$width.'px" maxlength="'.$maxlength.'"/>';
        }
    }
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  3. #3
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Cependant si tu tiens vraiment à faire de l'héritage pour d'autres raisons, il faut utiliser extends:

    http://fr2.php.net/manual/fr/keyword.extends.php

    Bon courage.
    Linio

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    Alors j'ai testé la méthode de Yoteco.

    Voici l'erreur retourné :

    Warning: require_once(../divers/format.class.php) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files\wamp\www\gestion_prestation\class\formulaire\displayfrom.class.php on line 3

    Fatal error: require_once() [function.require]: Failed opening required '../divers/format.class.php' (include_path='.;C:\php5\pear') in C:\Program Files\wamp\www\gestion_prestation\class\formulaire\displayfrom.class.php on line 3
    J'ai donc testé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once dirname(__FILE__).'../divers/format.class.php';
    Voici l'erreur :

    Warning: require_once(C:\Program Files\wamp\www\gestion_prestation\class\formulaire../divers/format.class.php) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files\wamp\www\gestion_prestation\class\formulaire\displayfrom.class.php on line 3

    Fatal error: require_once() [function.require]: Failed opening required 'C:\Program Files\wamp\www\gestion_prestation\class\formulaire../divers/format.class.php' (include_path='.;C:\php5\pear') in C:\Program Files\wamp\www\gestion_prestation\class\formulaire\displayfrom.class.php on line 3
    En gro sil n'aime pas mon include !

  5. #5
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    L'erreur te dit le soucis.

    A priori tu as oublié un / :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once dirname(__FILE__).'/../divers/format.class.php';
    Linio

  6. #6
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    Problème résolu !

    J'avais déja inclu la classe format deja dans la page de base !

    Merci beaucoup de votre aide !

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

Discussions similaires

  1. arrayList dans une méthode recupérer dans une autre méthode
    Par toufik34 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 31/07/2013, 09h45
  2. Utiliser les méthodes ror dans une class perso
    Par BakaOnigiri dans le forum Ruby on Rails
    Réponses: 10
    Dernier message: 01/02/2010, 12h01
  3. [XL-2003] Définir une variable présente dans une autre macro
    Par gandalf20000000 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/11/2009, 15h02
  4. Recherche d'une valeur présent dans une table mais pas dans une autre
    Par bossLINDROS dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 19/06/2008, 15h12
  5. Réponses: 1
    Dernier message: 13/06/2006, 17h41

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