Skip to content

Commit 1e8f043

Browse files
milodg
authored andcommitted
RobotLoader: fixed exclusion when scanned dir contains .. [Closes #13]
1 parent 965fdc7 commit 1e8f043

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

src/RobotLoader/RobotLoader.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,12 +223,12 @@ private function createFileIterator($dir)
223223

224224
$iterator = Nette\Utils\Finder::findFiles(is_array($this->acceptFiles) ? $this->acceptFiles : preg_split('#[,\s]+#', $this->acceptFiles))
225225
->filter(function (SplFileInfo $file) use (&$disallow) {
226-
return !isset($disallow[str_replace('\\', '/', $file->getPathname())]);
226+
return !isset($disallow[str_replace('\\', '/', $file->getRealPath())]);
227227
})
228228
->from($dir)
229229
->exclude($ignoreDirs)
230230
->filter($filter = function (SplFileInfo $dir) use (&$disallow) {
231-
$path = str_replace('\\', '/', $dir->getPathname());
231+
$path = str_replace('\\', '/', $dir->getRealPath());
232232
if (is_file("$path/netterobots.txt")) {
233233
foreach (file("$path/netterobots.txt") as $s) {
234234
if (preg_match('#^(?:disallow\\s*:)?\\s*(\\S+)#i', $s, $matches)) {
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
/**
4+
* Test: Nette\Loaders\RobotLoader and relative parent dirs.
5+
*/
6+
7+
use Nette\Loaders\RobotLoader;
8+
use Tester\Assert;
9+
10+
11+
require __DIR__ . '/../bootstrap.php';
12+
13+
14+
$loader = new RobotLoader;
15+
$loader->setTempDirectory(TEMP_DIR);
16+
$loader->addDirectory(__DIR__ . '/../Loaders/files');
17+
$loader->excludeDirectory(__DIR__ . '/../Loaders/files/exclude');
18+
$loader->excludeDirectory(__DIR__ . '/../Loaders/files/exclude2/excluded.php');
19+
20+
$loader->register();
21+
22+
Assert::false(class_exists('ExcludedClass')); // files/exclude2/excluded.php
23+
Assert::false(class_exists('Excluded2Class')); // files/exclude2/excluded.php

0 commit comments

Comments
 (0)