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 :

probleme(s) sur les classes


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Par défaut probleme(s) sur les classes
    Bonjours,

    Je voudrais savoir comment améliorer le code suivant :

    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
     
     
    class recherche
    {
        private $chaine;
     
             function __construct($chaine)
            {
            $this->_chaine = $chaine;
            }
    	function fonction1($value = "")
    	{
            /*****/
            return $this->_chaine;
    	}
     
    	function fonction2($value = "")
    	{
            /*****/
            return $this->_chaine;
    	}		
     
    	function __destruct() 
    	{
            unset($this->chaine);
            }
    Pour l'instant je pense pas qu'il y est d'erreur mais c'est plutôt dans l'utilisation de la classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $var = new recherche("blablabla");
    $temp= $var->fonction1();
    $var2 = new recherche($toto);
    echo $var2-> fonction2();
    Je trouve ce code très lourd et je suis sur qu'il y a plus simple...
    l'idée serait de faire qq chose ressemblant à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $var = new recherche("blablabla");
    $temp= ($var->fonction1())->fonction2();
    //appliquer la fonction1 puis la fonction2 avec comme parametre blablabla
    Ici il y a que 2 fonctions mais j'en est beaucoup plus et je me vois mal passer par un intermédiaire $temp à chaque fois....

    Merci pour la lecture

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Je n'ai absolument pas compris ce que tu veux faire. Le fait que toutes tes fonctions fassent la même chose n'est évidemment pas pour aider...

    Mais bon, je vais essayer de te donner quelques conseils d'ordre général :
    Par convention, un attribut privé (private) ou protégé (protected) est accédé depuis l'extérieur par des accesseurs (getters/setters en anglais) getNomAttribut qui récupère la valeur et setNomAttribut qui l'affecte.

    On peut parfaitement utiliser des méthodes directement sur d'autres méthodes, sous réserve que la première méthode renvoie un objet de la même classe...

    Ce qui donnerait quelque chose comme ça :
    Classe Recherche :
    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
    class Recherche
    {
        private $_chaine = '';
     
        function __construct($chaine) 
        {
            $this->_chaine = $chaine;
        }
    	/**
    	 * Set $_chaine
         * @param $chaine value to set
         */
        public function setChaine($chaine)
        {
            $this->_chaine = $chaine;
        }
     
    	/**
    	 * Return $_chaine
         * @return the $_chaine
         */
        public function getChaine()
        {
            return $this->_chaine;
        }
     
        /**
         * Applique un traitement à la chaine
         * @return $this
         */
        public function traiterChaine()
        {
            $this->_chaine = trim($this->_chaine);
            return $this;
        }
     
    }
    Utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $var = new Recherche('blabla   ');
    $chaineNonTraitee = $var->getChaine(); // => "blabla   "
    $chaineTraitee = $var->traiterChaine()->getChaine(); // => "blabla"
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. Probleme coherence sur les reponses.
    Par magnus2005 dans le forum Hibernate
    Réponses: 7
    Dernier message: 18/07/2006, 18h33
  2. [POO] Besoin de tutorat sur les classes
    Par misterniark dans le forum Langage
    Réponses: 11
    Dernier message: 20/04/2006, 14h48
  3. demande de renseignements sur les classes
    Par altadeos dans le forum Langage
    Réponses: 4
    Dernier message: 08/04/2006, 16h59
  4. Question de base sur les classes
    Par deaven dans le forum C++
    Réponses: 3
    Dernier message: 27/11/2005, 17h20
  5. [Debutant] probleme pour utiliser les classes d'un .jar
    Par pissek dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 12/05/2004, 19h21

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