Skip to content

Finder::exclude() behaviour changed upon transfer to nette/utils #17

@janedbal

Description

@janedbal

Version: 3.0.0

Bug Description

Exclude method behaviour changed when trailing / is used.

Steps To Reproduce

Assume following dir structure:

root/
 ├─ vendor/...
 ├─ inner/finder.php
 └─ composer.json

And contents of finder.php:

require_once __DIR__ . '/../vendor/autoload.php';

$files = \Nette\Utils\Finder::findFiles('*.php')
    ->from(__DIR__ . '/../')
    ->exclude('vendor/')
    ->getIterator();

foreach ($files as $file) {
    echo $file->getPathname() . PHP_EOL;
}
composer require nette/finder:^2
php inner/finder.php # no vendor files outputted
composer require nette/finder:^3
php inner/finder.php # vendor files present

Expected Behavior

Equal behaviour to previous version OR documented BC break in release notes.

Note: Seeing release notes in nette/finder ("Finder moved"), it feels like no BC break is expected, but seeing release notes in nette/utils ("Finder rewritten"), it feels like anything can change.

Possible Solution

Using ->exclude('vendor') works on both versions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions