Finder
class Finder implements IteratorAggregate, Countable
Finder allows to build rules to find files and directories.
It is a thin wrapper around several specialized iterator classes.
All rules may be invoked several times.
All methods return the current Finder object to allow easy chaining:
$finder = Finder::create()->files()->name('*.php')->in(DIR);
Constants
IGNORE_VCS_FILES |
|
IGNORE_DOT_FILES |
|
Methods
Constructor.
Restricts the matching to directories only.
Adds tests that file contents must not match.
Excludes "hidden" directories and files (starting with a dot).
Adds VCS patterns.
Sorts files and directories by name.
Sorts files and directories by type (directories before files), then by name.
Sorts files and directories by the last accessed time.
Sorts files and directories by the last inode changed time.
Sorts files and directories by the last modified time.
Forces the following of symlinks.
Tells finder to ignore unreadable directories.
Returns an Iterator for the current Finder configuration.
Counts all the results collected by the iterators.
Details
at line line 67
__construct()
Constructor.
at line line 77
static Finder
create()
Creates a new Finder.
at line line 87
Finder
directories()
Restricts the matching to directories only.
at line line 99
Finder
files()
Restricts the matching to files only.
at line line 121
Finder
depth(int $level)
Adds tests for the directory depth.
Usage:
$finder->depth('> 1') // the Finder will start matching at level 1. $finder->depth('< 3') // the Finder will descend at most 3 levels of directories below the starting point.
at line line 146
Finder
date(string $date)
Adds tests for file dates (last modified).
The date must be something that strtotime() is able to parse:
$finder->date('since yesterday'); $finder->date('until 2 days ago'); $finder->date('> now - 2 hours'); $finder->date('>= 2005-10-15');
at line line 168
Finder
name(string $pattern)
Adds rules that files must match.
You can use patterns (delimited with / sign), globs or simple strings.
$finder->name('*.php') $finder->name('/.php$/') // same as above $finder->name('test.php')
at line line 184
Finder
notName(string $pattern)
Adds rules that files must not match.
at line line 205
Finder
contains(string $pattern)
Adds tests that file contents must match.
Strings or PCRE patterns can be used:
$finder->contains('Lorem ipsum') $finder->contains('/Lorem ipsum/i')
at line line 226
Finder
notContains(string $pattern)
Adds tests that file contents must not match.
Strings or PCRE patterns can be used:
$finder->notContains('Lorem ipsum') $finder->notContains('/Lorem ipsum/i')
at line line 249
Finder
path(string $pattern)
Adds rules that filenames must match.
You can use patterns (delimited with / sign) or simple strings.
$finder->path('some/special/dir') $finder->path('/some\/special\/dir/') // same as above
Use only / as dirname separator.
at line line 272
Finder
notPath(string $pattern)
Adds rules that filenames must not match.
You can use patterns (delimited with / sign) or simple strings.
$finder->notPath('some/special/dir') $finder->notPath('/some\/special\/dir/') // same as above
Use only / as dirname separator.
at line line 293
Finder
size(string $size)
Adds tests for file sizes.
$finder->size('> 10K'); $finder->size('<= 1Ki'); $finder->size(4);
at line line 309
Finder
exclude(string|array $dirs)
Excludes directories.
at line line 325
Finder
ignoreDotFiles(bool $ignoreDotFiles)
Excludes "hidden" directories and files (starting with a dot).
at line line 345
Finder
ignoreVCS(bool $ignoreVCS)
Forces the finder to ignore version control directories.
at line line 363
static
addVCSPattern(string|string[] $pattern)
Adds VCS patterns.
at line line 385
Finder
sort(Closure $closure)
Sorts files and directories by an anonymous function.
The anonymous function receives two \SplFileInfo instances to compare.
This can be slow as all the matching files and directories must be retrieved for comparison.
at line line 401
Finder
sortByName()
Sorts files and directories by name.
This can be slow as all the matching files and directories must be retrieved for comparison.
at line line 417
Finder
sortByType()
Sorts files and directories by type (directories before files), then by name.
This can be slow as all the matching files and directories must be retrieved for comparison.
at line line 435
Finder
sortByAccessedTime()
Sorts files and directories by the last accessed time.
This is the time that the file was last accessed, read or written to.
This can be slow as all the matching files and directories must be retrieved for comparison.
at line line 455
Finder
sortByChangedTime()
Sorts files and directories by the last inode changed time.
This is the time that the inode information was last modified (permissions, owner, group or other metadata).
On Windows, since inode is not available, changed time is actually the file creation time.
This can be slow as all the matching files and directories must be retrieved for comparison.
at line line 473
Finder
sortByModifiedTime()
Sorts files and directories by the last modified time.
This is the last time the actual contents of the file were last modified.
This can be slow as all the matching files and directories must be retrieved for comparison.
at line line 492
Finder
filter(Closure $closure)
Filters the iterator with an anonymous function.
The anonymous function receives a \SplFileInfo and must return false to remove files.
at line line 504
Finder
followLinks()
Forces the following of symlinks.
at line line 520
Finder
ignoreUnreadableDirs(bool $ignore = true)
Tells finder to ignore unreadable directories.
By default, scanning unreadable directories content throws an AccessDeniedException.
at line line 536
Finder
in(string|array $dirs)
Searches files and directories which match defined rules.
at line line 564
Iterator
getIterator()
Returns an Iterator for the current Finder configuration.
This method implements the IteratorAggregate interface.
at line line 597
Finder
append(mixed $iterator)
Appends an existing set of files/directories to the finder.
The set can be another Finder, an Iterator, an IteratorAggregate, or even a plain array.
at line line 621
int
count()
Counts all the results collected by the iterators.