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 :

[Tableaux] Accès à une variable à l'intérieur d'une méthode de classe


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 91
    Points : 56
    Points
    56
    Par défaut [Tableaux] Accès à une variable à l'intérieur d'une méthode de classe
    bonjour voici mon piti probleme

    en gros j'ai créé pour une application php que je suis en train de développer une classe nommée listeMessage qui contient des messages(comme son nom l'indique).

    les messages sont constitués du texte du message et d'un type (erreur,avertissement,confirmation).

    Sur ma liste, j'ai une méthode ajouterMessage qui me permet d'ajouter un message d'un type quelconque à nimporte quel endroit de mon code.
    A la fin de chaque page, j'appelle une fonction afficher qui affiche toute la liste et la vide.

    mais j'ai un petit souci. J'utilise en effet d'autres classes et je ne peu évidemment pas acceder à ma variable $messages(de type listeMessage) à l'interieur des méthodes de mes classes.

    Vous auriez une solution pour que je puisse y accéder proprement afin d'avoir une gestion des différents messages facile et claire?

  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
    Tu pourrais ajouter a ta classe listeMessage une méthode getListe() qui te retournerait par exemple un tableau avec les informations utiles, ou une string qui contient toutes les infos organisées comme tu veux.
    Mais je ne suis pas certain d'avoir compris ce que tu voulais faire...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 91
    Points : 56
    Points
    56
    Par défaut
    j'utilise une classe mysql qui me permette de me connecter et d'effectuer une requete.

    voici ma classe mysql en tres simplifiée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class mysql{
     
    function connecter(){
    /*si la connection echoue*/
    if( !mysql_connect($host,$login,$passw) )
    {
    /*ici j'aimerais mettre $messages->ajouter('probleme de connection à mysql','erreur');*/
    }
     
    }

    Donc voila mon pb c'est que je voudrais acceder à ma liste de message depuis l'intérieur de ma classe (par exemple j'ai ossi une classe qui me genere automatiquement des formulaires)

    Ca ferai un peut comme un throw en java je pourrait faire remonter mes erreurs de nimporte ou dans mon code si vous voyez ce que je veu dire.(sachant que ces erreurs sont plutôt destinées à l'utilisateur qu'au développeur)

  4. #4
    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
    Il faudrait avoir un peu plus d'informations sur la classe qui gère les messages elle-meme.

    Où les stocke-t-elle? Dans un fichier? en mémoire? Dans le premier cas tu peux te faire une méthode statique dans la classe listeMessage qui permet d'écrire un message dans toutes tes autre classes.
    Dans le second cas, ca signifie que tu as une instance unique de la classe listeMessage dans ton script.
    Dans ce cas, pour l'erreur mysql tu ferais qqch comme ca dans ton if:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    /* Indique tu tu vas avoir dans ton script une instance de la classe listeMessage qui s'appelle $message */
    global $message; 
    $message->addMessage("info sur l'erreur mysql");
    je sais pas si tu vois?

  5. #5
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    Citation Envoyé par agrosjea
    Donc voila mon pb c'est que je voudrais acceder à ma liste de message depuis l'intérieur de ma classe
    Il faut que tu définisse des méthode get et set sur les attributs que tu veux rendre accessibles
    exemple :
    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
    class listeMessage
    {
        private $listeMessages;
     
        public function __construct() {
            $this->listeMessages = array();
        }
     
        public function getListe() {
            return $this->listeMessages;
        }
     
        public function setListe($uneListe) {
            $this->listeMessages = $uneListe;
        }
     
        public function addMessage($unMessage) {
            array_push($this->listeMessages, $unMessage);
        }
    }
    Citation Envoyé par agrosjea
    Ca ferai un peut comme un throw en java je pourrait faire remonter mes erreurs de nimporte ou dans mon code si vous voyez ce que je veu dire
    Oui, je vois très bien. Sais tu que ce mécanisme existe déjà en php ?
    Voir : Exceptions en php
    Pourquoi s'em...bêter à le redévelopper ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 91
    Points : 56
    Points
    56
    Par défaut
    oki merci bocoup je V tester ca

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/10/2013, 11h11
  2. Contenu d'une variable devenant lui même une variable
    Par Copyright83 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 14/11/2012, 17h24
  3. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  4. [Smarty] Récuper une variable php à partir d'une variable Smarty
    Par SPKlls dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 23/04/2008, 17h40
  5. [Free Pascal] [2.2] Impossible d'assigner une variable de type T à une variable de type T
    Par Hibou57 dans le forum Free Pascal
    Réponses: 3
    Dernier message: 12/10/2007, 12h31

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