|
8 | 8 | * file that was distributed with this source code. |
9 | 9 | */ |
10 | 10 |
|
| 11 | +use Symfony\Component\Finder\Finder; |
| 12 | + |
11 | 13 | /** |
12 | 14 | * Filter for blacklisting and whitelisting of code coverage information. |
13 | 15 | * |
@@ -44,10 +46,7 @@ class PHP_CodeCoverage_Filter |
44 | 46 | */ |
45 | 47 | public function addDirectoryToBlacklist($directory, $suffix = '.php', $prefix = '') |
46 | 48 | { |
47 | | - $facade = new File_Iterator_Facade; |
48 | | - $files = $facade->getFilesAsArray($directory, $suffix, $prefix); |
49 | | - |
50 | | - foreach ($files as $file) { |
| 49 | + foreach ($this->findFiles($directory, $prefix, $suffix) as $file) { |
51 | 50 | $this->addFileToBlacklist($file); |
52 | 51 | } |
53 | 52 | } |
@@ -83,10 +82,7 @@ public function addFilesToBlacklist(array $files) |
83 | 82 | */ |
84 | 83 | public function removeDirectoryFromBlacklist($directory, $suffix = '.php', $prefix = '') |
85 | 84 | { |
86 | | - $facade = new File_Iterator_Facade; |
87 | | - $files = $facade->getFilesAsArray($directory, $suffix, $prefix); |
88 | | - |
89 | | - foreach ($files as $file) { |
| 85 | + foreach ($this->findFiles($directory, $prefix, $suffix) as $file) { |
90 | 86 | $this->removeFileFromBlacklist($file); |
91 | 87 | } |
92 | 88 | } |
@@ -114,10 +110,7 @@ public function removeFileFromBlacklist($filename) |
114 | 110 | */ |
115 | 111 | public function addDirectoryToWhitelist($directory, $suffix = '.php', $prefix = '') |
116 | 112 | { |
117 | | - $facade = new File_Iterator_Facade; |
118 | | - $files = $facade->getFilesAsArray($directory, $suffix, $prefix); |
119 | | - |
120 | | - foreach ($files as $file) { |
| 113 | + foreach ($this->findFiles($directory, $prefix, $suffix) as $file) { |
121 | 114 | $this->addFileToWhitelist($file); |
122 | 115 | } |
123 | 116 | } |
@@ -153,10 +146,7 @@ public function addFilesToWhitelist(array $files) |
153 | 146 | */ |
154 | 147 | public function removeDirectoryFromWhitelist($directory, $suffix = '.php', $prefix = '') |
155 | 148 | { |
156 | | - $facade = new File_Iterator_Facade; |
157 | | - $files = $facade->getFilesAsArray($directory, $suffix, $prefix); |
158 | | - |
159 | | - foreach ($files as $file) { |
| 149 | + foreach ($this->findFiles($directory, $prefix, $suffix) as $file) { |
160 | 150 | $this->removeFileFromWhitelist($file); |
161 | 151 | } |
162 | 152 | } |
@@ -295,4 +285,32 @@ public function setWhitelistedFiles($whitelistedFiles) |
295 | 285 | { |
296 | 286 | $this->whitelistedFiles = $whitelistedFiles; |
297 | 287 | } |
| 288 | + |
| 289 | + /** |
| 290 | + * @param string $directory |
| 291 | + * @param string $prefix |
| 292 | + * @param string $suffix |
| 293 | + * @return array |
| 294 | + */ |
| 295 | + private function findFiles($directory, $prefix, $suffix) |
| 296 | + { |
| 297 | + $finder = new Finder; |
| 298 | + $finder->in($directory); |
| 299 | + |
| 300 | + if (!empty($prefix)) { |
| 301 | + $finder->name($prefix . '*'); |
| 302 | + } |
| 303 | + |
| 304 | + if (!empty($suffix)) { |
| 305 | + $finder->name('*' . $suffix); |
| 306 | + } |
| 307 | + |
| 308 | + $files = array(); |
| 309 | + |
| 310 | + foreach ($finder as $file) { |
| 311 | + $files[] = $file->getRealpath(); |
| 312 | + } |
| 313 | + |
| 314 | + return $files; |
| 315 | + } |
298 | 316 | } |
0 commit comments