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] Comment associer UN élément donné à UN autre (php5)


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut [POO] Comment associer UN élément donné à UN autre (php5)
    Bonjour,
    Je suis un peu novice en la matière c'est pourquoi je fais appel à votre aide...
    J'ai un petit problème que j'arrive pas à résoudre:

    ====>J'ai trois classes: DOSSIER, SOUS-DOSSIER (qui hérite de DOSSIER), FICHIER.

    ====>Je voudrais pouvoir ajouter un fichier dans un dossier ou un sous dossier donné.
    ====>Mais je ne sais pas comment faire pour dire ajouter le FICHIER saisi pour un DOSSIER donné.

    Ce que j'ai fait mais qui n'est pas ce que je veux:
    ---Il y a un tableau de fichiers dans DOSSIER et SOUS-DOSSIER.
    ---Et il m'affiche TOUS les FICHIERS pour TOUS les DOSSIERS.

    J'espère que je me fais bien comprendre.

    Merci d'avance pour votre aide!

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Il faudrait que tes objets partagent une liste des fichiers globalement ajoutés à tous les objets Dossier (ou SousDossier). Le mot clef static est fait pour toi

  3. #3
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Je comprend pas trop.
    Je reformule ce que je voulais :

    Je voudrais ajouter un FICHIER dans un SOUS-DOSSIER présent dans un tableau lesSousDossiers de la classe DOSSIER.

    Comment utiliser la propriété static?
    Voila un code que je vien d'écrire mais qui ne fais pas le boulot.
    classe DOSSIER.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public static $lesFichiers = array() ;
    public static $lesSousDossiers = array() ;
     
    self::$lesFichiers[$NumFichier] = serialize($unFichier);//ajoute un fichier
    self::$lesSousDossiers[$NumDossier] = serialize($unSousDossier);//ajoute un sous-dossier

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Je pensais à quelque chose comme cela:
    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
    class MyFile
    {
       protected $name;
       protected $id;
     
       public function __construct($sysname)
       {
          $this->name = $sysname;
          $this->id = md5_file($sysname);
       }
     
       public function getName()
       {
          return $this->name;
       }
     
       public function getId()
       {
          return $this->id;
       }
    }
     
    class MyFolder
    {
       public static $globalFiles = array();
       protected $localFiles;
       protected $name;
     
       public function __construct($sysname)
       {
          $this->files = array();
          $this->name = $sysname;
       }
     
       public function addFile(MyFile $file)
       {
          if(empty(MyFolder::globalFiles[$file->getId()]))
          {
             MyFolder::globalFiles[$file->getId()] = TRUE;
             $this->localFiles[] = $file;
          }
       }
    }
     
    class MySubFolder
    {
       //...
    }

  5. #5
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Je suis ariver à quelquechose mais c'est pas encore ça:

    Je peux avoir :
    • Les FICHIERS d'un DOSSIER

    • Les SOUS-DOSSIERS d'un DOSSIER
    • Les FICHIERS du SOUS-DOSSIER courant


    ===> Le problème là c'est que je ne peux pas avoir les Fichiers d'un SOUS-DOSSIER créer avant le dernier. A l'affichage j'ai donc toujous le dernier FICHIER créé dans tous les SOUS-DOSSIERS.

    SOUS-DOSSIER_1
    FICHIER_TEST
    SOUS-DOSSIER_2
    FICHIER_TEST


    Je veux arriver à faire une arborescence.
    Comment arriver à lier toutes les éléments qui sont déja fait pour arriver au résultat ?
    J'y arrive pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //CLASSE DOSSIER Affichage des fichiers et sous-dossiers d'un DOSSIER
    foreach ($this->localfiles as $Fichier) {
    		$unFichier = unserialize($Fichier);
    		print $unFichier->getNomFichier();
     
    		}
    		foreach ($this->localfolders as $Dossiers) {
    		$unDossier = unserialize($Dossiers);
    		print $unDossier->getNomSousDossier();
     
    		}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CLASSE SOUS-DOSSIER //Affichage des fichiers du sous-dossier courant
    print $this->getNomSousDossier();
    		foreach ($this->localfiles as $fichiers) {
    		$unFichier = unserialize($fichiers);
    		print $unFichier->getNomFichier();}

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    On dirait que tu ajoutes toujours au même endroit. Peux-tu donner le code des classes ?

  7. #7
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Je te dis déja merci de m'aider c'est vraiment sympa et cool de ta part
    Voila mes classes :
    classe DOSSIER:
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
     
    <?php
    /**
     * 
     * Code skeleton generated by dia-uml2php5 plugin
     * written by KDO kdo@zpmag.com
     */
    require_once('Fichier.class.php');
     
    class Dossier {
     
    	/**
    	 * Association
    	 * @var Fichier
    	 * @access public
    	 */
    	public static $lesFichiers = array() ;
    	protected $localfiles;
    	/**
    	 * Association
    	 * @var Fichier
    	 * @access public
    	 */
    	public static $lesSousDossiers = array() ;
    	protected $localfolders;
    	/**
    	 * 
    	 * @var Entier
    	 * @access private
    	 */
    	private  $NumDossier;
     
    	/**
    	 * 
    	 * @var Chaine
    	 * @access private
    	 */
    	private  $NomDossier;
     
    	/**
    	 * 
    	 * @var Chaine
    	 * @access private
    	 */
    	private  $EmplacementDossier;
     
    	/**
    	 * 
    	 * @var Date
    	 * @access private
    	 */
    	private  $DateDossier;
     
    	/**
    	 * 
    	 * @var Entier
    	 * @access private
    	 */
    	private  $TailleDossier;
     
     
    	/**
    	 * @access public
    	 * @param  $unNum 
    	 * @param  $unNom 
    	 * @param  $unEmplacement 
    	 * @param  $uneTaille 
    	 * @param  $uneDate 
    	 */
     
    	public   function __construct($unNum, $unNom, $unEmplacement, $uneTaille, $uneDate) {
    		$this->NumDossier         = $unNum;
    		$this->NomDossier         = $unNom;
    		$this->EmplacementDossier = $unEmplacement;
    		$this->TailleDossier      = $uneTaille;
    		$this->DateDossier        = $uneDate;
    		$this->localfiles         = array();
    		$this->localfolders		  = array();
    	}
     
     
    	/**
    	 * @access public
    	 */
     
    	public   function getNumDossier() {
    		return $this->NumDossier;
    	}
     
     
    	/**
    	 * @access public
    	 */
     
    	public   function getNomDossier() {
    		return $this->NomDossier;
    	}
     
     
    	/**
    	 * @access public
    	 */
     
    	public final  function getEmplacementDossier() {
    			return $this->EmplacementDossier;
    	}
     
     
    	/**
    	 * @access public
    	 */
     
    	public final  function getTailleDossier() {
    		return $this->TailleDossier;
    	}
     
     
    	/**
    	 * @access public
    	 */
     
    	public final  function getNbFichiers() {
    		return $this->count($this->lesFichiers);
    	}
     
     
    	/**
    	 * @access public
    	 * @param  $unNumFichier 
    	 */
     
    	public final  function getFichier($unNumFichier) {
    		if (array_key_exists($unNumFichier, $this->lesFichiers)) {
    			return unserialize($this->lesFichiers[$unNumFichier]);
    		} else {
    			throw new Exception("Numéro de série '$unNumFichier' introuvable");
    		}
    	}
     
     
    	/**
    	 * @access public
    	 * @param  $unFichier 
    	 */
     
    	public  function ajouter($unFichier) {
     
    		$NumFichier = $unFichier->getNumFichier();
            if(empty($this->lesFichiers[$NumFichier])){
             $this->lesFichiers[$unFichier->getNumFichier()] = TRUE;
             $this->localfiles[] = serialize($unFichier);
            }
       }
     
     
    		/*
    		$NumFichier = $unFichier->getNumFichier();
    		if ($NumFichier == "") {
    			throw new Exception("Le numéro de fichier doit etre saisi!");	
    		}	
    		if (!array_key_exists($NumFichier, self::$lesFichiers)) {	
    			self::$lesFichiers[$NumFichier] = serialize($unFichier);
    		} else {
    			throw new Exception("Numéro de série '$NumFichier' déjà présent dans la salle");	
    		}
    	}*/
     
     
    	/**
    	 * @access public
    	 * @param  $unFichier 
    	 */
     
    	public  function ajouterSousDossier($unSousDossier) {
     
    		$NumDossier = $unSousDossier->getNumSousDossier();
          if(empty($this->lesSousDossiers[$NumDossier]))
          {
             $this->lesSousDossiers[$unSousDossier->getNumSousDossier()] = TRUE;
             $this->localfolders[] = serialize($unSousDossier);
          }
     
     
     
    		/*$NumDossier = $unSousDossier->getNumSousDossier();
    		if ($NumDossier == "") {
    			throw new Exception("Le numéro de fichier doit etre saisi!");	
    		}	
    		if (!array_key_exists($NumDossier, self::$lesSousDossiers)) {	
    			self::$lesSousDossiers[$NumDossier] = serialize($unSousDossier);
    		} else {
    			throw new Exception("Numéro de série '$NumDossier' déjà présent dans la salle");	
    		}*/
    	}
     
     
    	/**
    	 * @access public
    	 * @param  $unFichier 
    	 */
     
    	public final  function enlever($unNumFichier) {
    		if (array_key_exists($unNumFichier, $this->lesFichiers)) {	
    			unset($this->lesFichiers[$unNumFichier]);
    		} else {
    			throw new Exception("Numéro de série '$unNumFichier' introuvable");	
    		}
    	}
     
     
    	/**
    	 * @access public
    	 */
     
    	public  function afficher() {
    	print $this->getNomDossier();
    		foreach ($this->localfiles as $Fichier) {
    		$unFichier = unserialize($Fichier);
    		print $unFichier->getNomFichier();
     
    		}
    		foreach ($this->localfolders as $Dossiers) {
    		$unDossier = unserialize($Dossiers);
    		print $unDossier->getNomSousDossier();
     
    		}//sousdossier::afficher();
    		/*		$NbFichier= 0;
    					
    				print 'DOSSIER :::<img src="dossier.png">';
    						print $this->getNomDossier();
    				
    				foreach (self::$lesFichiers as $Fichier) {
    				 
    					$unFichier = unserialize($Fichier);
    					
    					print "&nbsp&nbsp&nbsp <li>FICHIER :::";
    					print $val=$unFichier->getNomFichier();
    					print "&nbsp&nbsp&nbsp</li>";
    						if (get_class($unFichier) == "Fichier") {
    						$NbFichier++;
    									} 
    				}
    				foreach (self::$lesSousDossiers as $SousDossier) {
    				$unSousDossier = unserialize($SousDossier);
    							print 'SOUSDOSSIER :::<img src="dossier.png">';
    							print $valeur=$unSousDossier->getNomSousDossier();
    							print '<br>';
    				$MonSousDossier = unserialize($_SESSION['SousDossier']);
    				$MonSousDossier->afficher();
    				}
    		*/			
     
    	}
    }
     
    ?>
    CLASSE SOUS-DOSSIER
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    <?php
    /**
     * 
     * Code skeleton generated by dia-uml2php5 plugin
     * written by KDO kdo@zpmag.com
     */
    require_once('Dossier.class.php');
     
    class SousDossier extends Dossier {
    /**
    	 * Association
    	 * @var Fichier
    	 * @access public
    	 */
    	public static $lesFichiers = array() ;
    	protected $localfiles;
     
    	/**
    	 * 
    	 * @var Entier
    	 * @access private
    	 */
    	private  $NumSousDossier;
     
    	/**
    	 * 
    	 * @var Entier
    	 * @access private
    	 */
    	private  $NomSousDossier;
     
    	/**
    	 * @access public
    	 * @param  $unNum 
    	 * @param  $unNom 
    	 * @param  $unEmplacement 
    	 * @param  $uneTaille 
    	 * @param  $uneDate 
    	 */
     
    	public final  function __construct($unNum, $unNom, $unEmplacement, $uneTaille, $uneDate,$unNumSousDossier,$unNomSousDossier) {
    		parent::__construct($unNum, $unNom, $unEmplacement, $uneTaille, $uneDate);
    		$this->NumSousDossier=$unNumSousDossier;
    		$this->NomSousDossier=$unNomSousDossier;
    	}
     
    	public  function getNumSousDossier() {
    		return $this->NumSousDossier;
    	}
     
     
    	public  function getNomSousDossier() {
    		return $this->NomSousDossier;
    	}
     
    	public  function ajouter2($unFichier) {
     
    		$NumFichier = $unFichier->getNumFichier();
          if(empty($this->lesFichiers[$NumFichier]))
          {
             $this->lesFichiers[$unFichier->getNumFichier()] = TRUE;
             $this->localfiles[] = serialize($unFichier);
          }
     
    		/*$NumFichier = $unFichier->getNumFichier();
    		if ($NumFichier == "") {
    			throw new Exception("Le numéro de fichier doit etre saisi!");	
    		}	
    		if (!array_key_exists($NumFichier, $this->lesFichiers)) {	
    			$this->lesFichiers[$NumFichier] = serialize($unFichier);
    		} else {
    			throw new Exception("Numéro de série '$NumFichier' déjà présent dans la salle");	
    		}*/
    	}
     
    	public final  function afficher() {
    		print $this->getNomSousDossier();
    		foreach ($this->localfiles as $fichiers) {
    		$unFichier = unserialize($fichiers);
    		print $unFichier->getNomFichier();
     
    		}
     
    /*	foreach ($this->lesFichiers as $Fichier) {
    						 $unFichier = unserialize($Fichier);
    						
    						print "&nbsp&nbsp&nbsp <li>FICHIER :::";
    						print $val=$unFichier->getNomFichier();
    						print "&nbsp&nbsp&nbsp</li>";
    							
    							
    					}
    */
    	}
     
     
    }
    ?>
    CLASSE FICHIER

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
     
    <?php
    /**
     * 
     * Code skeleton generated by dia-uml2php5 plugin
     * written by KDO kdo@zpmag.com
     */
     
    class Fichier {
     
    	/**
    	 * 
    	 * @var Entier
    	 * @access public
    	 */
    	public  $NumFichier;
     
    	/**
    	 * 
    	 * @var Chaine
    	 * @access public
    	 */
    	public  $NomFichier;
     
    	/**
    	 * 
    	 * @var Entier
    	 * @access public
    	 */
    	public  $TailleFichier;
     
    	/**
    	 * Attribut de classe utilisé pour comptabiliser le nombre d'instances.
    	 * @var Entier
    	 * @access private
    	 */
    	private static  $Compteur = 0;
     
    	/**
    	 * 
    	 * @var Chaine
    	 * @access public
    	 */
    	public  $Chemin;
     
     
    	/**
    	 * @access public
    	 * @param  $unNum 
    	 * @param  $unNom 
    	 * @param  $uneTaille 
    	 * @param  $unChemin 
    	 */
     
    	public final  function __construct($unNum, $unNom, $uneTaille, $unChemin) {
    		$this->NumFichier = $unNum;
    		$this->NomFichier = $unNom;
    		$this->TailelFichier = $uneTaille;
    		$this->Chemin->$unChemin;
    	}
     
     
    	/**
    	 * @access public
    	 */
     
    	public final  function getNumFichier() {
    		return $this->NumFichier;
    	}
     
     
    	/**
    	 * @access public
    	 */
     
    	public final  function getNomFichier() {
    		return $this->NomFichier;
    	}
     
     
    	/**
    	 * @access public
    	 */
     
    	public final  function getTailleFichier() {
    		return $this->TailleFichier;
    	}
     
     
    	/**
    	 * @access public
    	 */
     
    	public final  function getCompteur() {
    		return self::$Compteur;
    	}
     
     
    	/**
    	 * @access public
    	 */
     
    	public final  function getChemin() {
    		return $this->Chemin;
    	}
     
     
    	/**
    	 * @access public
    	 */
     
    	public final  function afficher() {
    		print'Fichier : $this->Nomfichier';
    	}
     
    }
    ?>

  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Si je comprends bien, tu parviens à insérer plusieurs objets mais c'est toujours le même qui se trouve (donc en plusieurs exemplaires) dans le tableau ?

  9. #9
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    En faite à chaque fois que je rajoute un SOUS-DOSSIER, les FICHIERS du DOSSIER précédent sont effacés. Ce qui est normal je pense puisque à chaque instance de SOUS-DOSSIER créé, on réinitialise le tableau de FICHIER à vide.

    Donc comment pouvoir garder ces anciens FICHIERS ?

    Comment pouvoir faire"Afficher tous les Sous-dossiers avec leurs fichiers correspondant " ?

    Pour chaque DOSSIER
    Afficher Nom des SOUS-DOSSIER
    Pour chaque SOUS-DOSSIER
    Afficher Nom des FICHIERS
    Fin Pour
    Fin Pour

  10. #10
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    En effet, la méthode n'est pas tout à fait correcte... Une variable statique ne devrait pas être systématiquement initialisée de cette manière, je me suis trompé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static $lesFichiers;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function __construct() // Dossier
    {
       if(empty(self::lesFichiers))
       {
          self::lesFichiers = array();
       }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function __construct() // SousDossier
    {
       if(empty(parent::lesFichiers))
       {
          parent::lesFichiers = array();
       }
    }

  11. #11
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Problème résolu[D'une certaine manière] :
    J'ai utilisé un tableau de session qui gardera en mémoire les instances des dossiers et sous-dossiers. Ce qui me permet par la suite de les récupérer et de récupérer du même coup les fichiers DU sous-dossier ou DU Dossier voulu.

    Je pense quand même que ce n'est la façon optimale de gérer tout ça, mais pour l'instant je m'en remet à ce que je sais faire...

    YoGui , j'ai pas trop assimliler le concept que tu a voulu m'aider a mettre en oeuvre, je suis toujours preneur si tu peux m'aider à avancer dans le sens ou tu as commencé..

    En tout les Cas !


  12. #12
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Je n'ai moi-même pas mené la réflexion à terme, donc tant pis

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

Discussions similaires

  1. Comment placer un élément après un autre ?
    Par CinePhil dans le forum jQuery
    Réponses: 3
    Dernier message: 03/08/2012, 09h06
  2. Réponses: 1
    Dernier message: 12/09/2006, 14h44
  3. Réponses: 1
    Dernier message: 11/02/2006, 12h50
  4. Comment récupérer les éléments d'un autre programme ?
    Par Henri_13 dans le forum API, COM et SDKs
    Réponses: 22
    Dernier message: 29/11/2005, 00h16

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