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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    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
    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 averti
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    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
    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 averti
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    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
    Par défaut
    On dirait que tu ajoutes toujours au même endroit. Peux-tu donner le code des classes ?

+ 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