Beispiel #1
0
 /**
  *  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;
 }
Beispiel #2
0
 /**
  * returns files and directories
  *
  * @return      \Iterator
  */
 public function listAll()
 {
     $iterator = new \FilesystemIterator($this->getAbsolutePath());
     $iterator->setInfoClass(get_class($this));
     return $iterator;
 }
Beispiel #3
0
 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;
 }