/** * create an iterator to iterate through the children * * @since 6-23-11 * @param string $regex * @param integer $depth * @return \Traversable */ public function createIterator($regex = '', $depth = -1) { $depth = (int) $depth; $iterator = null; if ($this->isDir()) { if ($depth < 0 || $depth > 1) { $iterator = new RecursiveDirectoryIterator($this->getPathname(), FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::SKIP_DOTS); $iterator->setInfoClass(get_class($this)); $iterator = new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST); $iterator->setMaxDepth($depth); } else { $iterator = new FilesystemIterator($this->getPathname(), FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::SKIP_DOTS); $iterator->setInfoClass(get_class($this)); } //if/else } else { $iterator = $this->openFile(); $iterator->setFlags(\SplFileObject::DROP_NEW_LINE | \SplFileObject::SKIP_EMPTY); } //if/else if (!empty($regex)) { $iterator = new RegexIterator($iterator, $regex, RegexIterator::MATCH); } //if/else return $iterator; }
/** * returns files and directories * * @return \Iterator */ public function listAll() { $iterator = new \FilesystemIterator($this->getAbsolutePath()); $iterator->setInfoClass(get_class($this)); return $iterator; }
public function createFilesystemIterator($flags = null) { if (isset($flags)) { $iterator = new \FilesystemIterator($this->getRealPath(), $flags); } else { $iterator = new \FilesystemIterator($this->getRealPath()); } $iterator->setFileClass('Stalxed\\FileSystem\\FileObject'); $iterator->setInfoClass('Stalxed\\FileSystem\\FileInfo'); return $iterator; }