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

Contribuez / Téléchargez Sources et Outils PHP Discussion :

"mkdir2" ou une petite fonction de génération d'arborescence qui pourrait vous être utile


Sujet :

Contribuez / Téléchargez Sources et Outils PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 4
    Points : 6
    Points
    6
    Par défaut "mkdir2" ou une petite fonction de génération d'arborescence qui pourrait vous être utile
    Bonsoir à tous,

    Je vous propose une sorte de mkdir "amélioré", bien que cela soit un peu prétentieux de ma part!

    Voici donc une petite fonction récursive qui permet de générer une arborescence de dossiers à partir d'un array PHP à x dimensions (x étant le niveau du sous-dossier le plus "profond").

    Ici se trouve un exemple d'appel :

    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
    mkdir2(
      array(
        'public' => array(
          'images',
          'css',
          'js'
        ),
        'application' => array(
          'models',
          'views',
          'controllers',
          'layouts',
          'configuration',
          'languages'
        )
      )
    );
    Et ici se trouve le code de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function mkdir2($array, $prefix = '') {
      foreach($array as $key => $value)
        if(is_array($value))
          mkdir2($value, $prefix . $key . '/');
        else
          mkdir($prefix . $value, 0, true);
    }
    Remarque : cette fonction peut être utile dans le cadre, par exemple et comme dans ce cas, de l'écriture d'un script permettant de générer le squelette d'une petite appli mvc.

    Je cherchais une fonction capable de faire tous ces mkdir en cascade à partir d'un tableau à n dimensions facilement lisible (comme on peut le voir sur l'exemple d'appel à la fonction, l'arborescence apparait clairement).

    Merci de me dire ce que vous en pensez ou si vous connaissez ou voulez soumettre à votre tour une fonction existante qui remplirait déjà ce rôle, voire un script amélioré.

    Bonne soirée et surtout bonnes fêtes!

    Edit du 30/12 : simplification de la fonction.

  2. #2
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Merci ca peut être utile

  3. #3
    Membre averti
    Avatar de cahnory
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 203
    Points : 401
    Points
    401
    Par défaut
    Belle idée et bien exécuté !
    Si cela ne te dérange pas j'ajouterai bien ta fonction à ma class Helper_Form en citant bien évidemment ton nom/pseudo/email/ce que tu me donneras en réponses si jamais tu accèptes

  4. #4
    Futur Membre du Club
    Inscrit en
    Août 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 4
    Points : 6
    Points
    6
    Par défaut
    Merci!
    Cahnory, je ne vois aucun inconvénient à ce que tu l'utilises dans ton propre code!
    Voici les infos que tu peux utiliser pour me citer (par exemple en en-tête précédant la fonction) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    /**
     * @author     Grégory Vilain <gregoryvilain@gmail.com>
     */

Discussions similaires

  1. ASP besoin d'une petite fonction
    Par nicodu59 dans le forum ASP
    Réponses: 3
    Dernier message: 15/08/2007, 00h25
  2. Problème avec une petite fonction toute bête
    Par jeremy13 dans le forum MATLAB
    Réponses: 3
    Dernier message: 18/01/2007, 09h10
  3. Réponses: 2
    Dernier message: 05/09/2006, 00h47

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