Of_directoryiterator : iterateur de répertoires avec filtres et tris

Soyez le premier à donner votre avis sur cette source.

Vue 3 151 fois - Téléchargée 160 fois

Description

Cette classe va vous permettre de manipuler les répertoires et les fichiers, mais aussi de créer vos propres filtres : voir les 2 filtres fournis en exemple à la fin de la classe.

le but est également de faire des "tris" ascendants et descendants sur toutes les items trouvés.

Pour l'instant il n'a que 2 possibilités de tris :
- par nom de fichier/répertoire trouvé :
$instant->setSortAlpha(OF_DirectoryIterator::SORT_DESC); // ordre inverse

- par date de modification de fichier :
$instant->setSortMTime(OF_DirectoryIterator::SORT_ASC);

Soit je rajouterai de nouvelles méthodes de tris, soit je vais faire un système similiaire aux filtres pour créer ses tris personnalisés.

Conclusion :


Cette classe est utilisée en tant que "plugin" dans mon framework.

C'est pour cela que je laisse libre au programmeur de faire son propre système d'inclusion des filtres.

2 excellentes sources du même type sur ce site :
http://www.phpcs.com/codes/PHP5-SMARTDIR-ITERATEURS-PHP-LECTURE-INTELLIGENTE-REPERTOIRE_40393.aspx

http://www.phpcs.com/codes/LISTING-REPERTOIRE-AVEC-FILTRES_45125.aspx

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
Salut,

Pas le temps de regarder en détails pour le moment... Mais comme j'ai suivi la discussion sur le forum, je jetterai un oeil quand je serai de retour chez moi.
Et merci pour le clin d'oeil ;)
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
21
Hello,

quelques remarques :
- à mon sens, tu n'utilises pas correctement getChildren(). Regarde la façon dont cette méthode est codée dans la SPL. Tu ne devrais pas avoir à rentrer dans plusieurs boucles pour récupérer les enfants. Une seule boucle générale devrait suffire. Quitte à mettre un flag indiquant si oui ou non on travaille en recursif. Si on ne connait pas la profondeur des répertoires, on ne peut pas les lister avec ton code. Pas simplement en tous cas.
Avec RecursiveDirectoryIterator, une boucle suffit pour liste tous les répertoires et sous-répertoires. Inspire-t-en. L'avantage de ta technique étant qu'on peut appliquer différents tris ou filtres en fonction du niveau. Mais je doute de l'utilité réelle du bin's.
- je ne comprends pas ta notion de optionValues dans ta classe de filtre?
- encore une fois, je trouve que le __call() est de trop. Autant passer à une méthode générique sort() une constante indiquant le type de tri que l'on veut : SORT_MTIME_ASC, SORT_MTIME_DESC etc...ça simplifie nettement les appels. Mais bon, ça, ça reste très subjectif :-)

Sino,, c'est très sympa :-)
Et merci pour la petite dédicace pour Neige et moi :-)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.