Bonjour à tous,
Je suis en train de tester la SPL de PHP et plus précisément la class
RecursiveDirectoryIterator. J'ai du mal à comprendre son fonctionnement et les retours effectués.
Organisation du répertoire :
- /
- /test/1/
- /test/2/
- /test/3/
- /test/4/
- inc.class.my.files.php
- index.php
Chaque dossier est vide.
Le contenu des fichiers
inc.class.my.files.php
Code PHP :
<?php
Class MyRecursiveFiles extends RecursiveDirectoryIterator {
public $path;
public $nbrFiles;
public $nbrDirs;
public $totalSize;
public $ret = array();
public function __construct( $path ) {
$this->totalFiles = 0 ;
$this->totalDirs = 0 ;
$it = new RecursiveIteratorIterator( new RecursiveDirectoryIterator( $path, FilesystemIterator::SKIP_DOTS ) );
while( $it->valid() ) {
if( $it->isDir() ) {
echo $it->key();
}
$it->next();
}
}
}
?>
index.php
Code PHP :
<?php
include('inc.class.my.files.php');
try {
$path = 'test/';
$listAllItems = new MyRecursiveFiles( $path );
}
catch ( Exception $e ) {
echo $e->getMessage();
}
?>
Retour du script :
Code PHP :
Retour attendu
Code PHP :
test\1
test\2
test\3
test\4
Pour quelles raisons cette classe liste-elle seulement le premier élément ?
Ne doit-elle pas parcourir l'ensemble des dossiers ?
Pourquoi n'indexe t-elle pas les dossiers vides ?
Le documentation est assez légère dans la SPL, j'ai bien fait le tour des différentes méthodes de parcours de d'arborescence, glob, globiterator, scandir etc ...
Merci d'avance
_________________________________
( $toBe || !$toBe ) = $this->Question();