SPL to dość fajne narzędzie do implementacji szczególnie iteracji w PHP, warte poznania. Za pmocą SPL’a da się pewne uciążliwe funkcje napisać prościej. Poniżej przykład funkcji, która wypisuje drzewo katalogów:

$$ class DirectoryAdapter extends RecursiveIteratorIterator { private $dirArray; private $path; public function __construct($path) { $this->path = $path; parent::__construct(new RecursiveDirectoryIterator($path), parent::CHILD_FIRST); } public function getDirs() { foreach($this as $item) { if($item->isDir()) { $current = count($this->dirArray); $mtime = date("Y-m-d H:m", $this->getMTime()); $this->dirArray[$current]['mtime'] = $mtime; $atime = date("Y-m-d H:m", $this->getATime()); $this->dirArray[$current]['atime'] = $atime; $this->dirArray[$current]['dir'] = str_replace($this->path,'', $this->key()); } } return $this->dirArray; } public function deleteDir() { foreach ($this as $item) { if ($item->isDir()) { rmdir($this->key()); } else { unlink($this->key()); } } rmdir($this->path); } }$$

Wykorzystanie:

$$ $path = "/Users/paramah/test"; if(is_Dir($path)) { $direct = new DirectoryAdapter($path); echo "```$$

“; print_r($direct->getDirs()); echo “”; } else { echo “brak katalogu”; }

$$$$