7decdc6781f764f29ea8b3548edb6d4c2631360b
[pharext/pharext] / src / pharext / SourceDir / Basic.php
1 <?php
2
3 namespace pharext\SourceDir;
4
5 use pharext\Cli\Args;
6 use pharext\SourceDir;
7
8 use FilesystemIterator;
9 use IteratorAggregate;
10 use RecursiveDirectoryIterator;
11 use RecursiveIteratorIterator;
12
13
14 class Basic implements IteratorAggregate, SourceDir
15 {
16 private $path;
17
18 public function __construct($path) {
19 $this->path = $path;
20 }
21
22 public function getBaseDir() {
23 return $this->path;
24 }
25
26 public function getPackageInfo() {
27 return [];
28 }
29
30 public function getArgs() {
31 return [];
32 }
33
34 public function setArgs(Args $args) {
35 }
36
37 public function getIterator() {
38 $rdi = new RecursiveDirectoryIterator($this->path,
39 FilesystemIterator::CURRENT_AS_SELF | // needed for 5.5
40 FilesystemIterator::KEY_AS_PATHNAME |
41 FilesystemIterator::SKIP_DOTS);
42 $rii = new RecursiveIteratorIterator($rdi,
43 RecursiveIteratorIterator::CHILD_FIRST);
44 foreach ($rii as $path => $child) {
45 if (!$child->isDir()) {
46 yield $path;
47 }
48 }
49 }
50 }