Skip to content

Commit 00dc017

Browse files
committed
ApplicationExtension: option 'scanFilter' changed to pattern, default is '*Presenter'
1 parent 0e7442d commit 00dc017

2 files changed

Lines changed: 7 additions & 3 deletions

File tree

src/Bridges/ApplicationDI/ApplicationExtension.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public function getConfigSchema(): Nette\Schema\Schema
6363
false
6464
)->default($this->scanDirs),
6565
'scanComposer' => Expect::bool(class_exists(ClassLoader::class)),
66-
'scanFilter' => Expect::string('Presenter'),
66+
'scanFilter' => Expect::string('*Presenter'),
6767
'silentLinks' => Expect::bool(),
6868
]);
6969
}
@@ -159,7 +159,7 @@ private function findPresenters(): array
159159
}
160160
$robot = new Nette\Loaders\RobotLoader;
161161
$robot->addDirectory(...$config->scanDirs);
162-
$robot->acceptFiles = ['*' . $config->scanFilter . '*.php'];
162+
$robot->acceptFiles = [$config->scanFilter . '.php'];
163163
if ($this->tempDir) {
164164
$robot->setTempDirectory($this->tempDir);
165165
$robot->refresh();
@@ -191,7 +191,7 @@ private function findPresenters(): array
191191
$presenters = [];
192192
foreach (array_unique($classes) as $class) {
193193
if (
194-
strpos($class, $config->scanFilter) !== false
194+
fnmatch($config->scanFilter, $class)
195195
&& class_exists($class)
196196
&& ($rc = new \ReflectionClass($class))
197197
&& $rc->implementsInterface(Nette\Application\IPresenter::class)

tests/Bridges.DI/ApplicationExtension.scan.phpt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ test('', function () {
4040
$code = $compiler->addConfig([
4141
'application' => [
4242
'scanDirs' => [__DIR__ . '/files'],
43+
'scanFilter' => '*Presenter*',
4344
],
4445
])->setClassName('Container2')->compile();
4546
eval($code);
@@ -61,6 +62,9 @@ test('', function () {
6162
$builder->addDefinition('myHttpResponse')->setFactory(Nette\Http\Response::class);
6263
$loader = new DI\Config\Loader;
6364
$config = $loader->load(Tester\FileMock::create('
65+
application:
66+
scanFilter: *Presenter*
67+
6468
services:
6569
-
6670
factory: Presenter1

0 commit comments

Comments
 (0)