Précédent   Forum des professionnels en informatique > PHP > Langage > Contribuez
Contribuez Proposez vos articles, cours, tutoriels, FAQ, sources, etc. pour PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/12/2010, 23h53   #1
Invité de passage
 
Inscription : août 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 4
Points : 3
Points : 3
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 :
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 :
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.
g.reg est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/01/2011, 15h52   #2
Rédacteur/Modérateur
 
Avatar de David55
 
Homme David S.
Etudiant en alternance
Inscription : août 2010
Messages : 1 167
Détails du profil
Informations personnelles :
Nom : Homme David S.
Âge : 22
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 1 167
Points : 2 304
Points : 2 304
Merci ca peut être utile
__________________
Vous trouverez ma page perso avec des tutoriels sur Android et BIRT au lien suivant : http://dsilvera.developpez.com
N'oubliez pas de voter pour les messages dont la réponse est pertinente (en bas à droite du cadrant)
Vous voulez afficher du code :
Votre problème est résolu :
Pas de question technique par MP !
David55
David55 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/02/2011, 13h05   #3
Membre confirmé
 
Avatar de cahnory
 
Inscription : mai 2007
Messages : 199
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2007
Messages : 199
Points : 287
Points : 287
Envoyer un message via ICQ à cahnory
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
cahnory est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 19h34   #4
Invité de passage
 
Inscription : août 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 4
Points : 3
Points : 3
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 :
1
2
3
/**
 * @author     Grégory Vilain <gregoryvilain@gmail.com>
 */
g.reg est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h58.


 
 
 
 
Partenaires

Hébergement Web