This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src/Symfony/Component/Finder
Fabien Potencier 984d82cbe5 minor #14121 CS: Pre incrementation/decrementation should be used if possible (gharlan)
This PR was merged into the 2.3 branch.

Discussion
----------

CS: Pre incrementation/decrementation should be used if possible

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Fixes provided by new fixer: https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/1113

If this pr is merged I would change the level of the fixer to `symfony`.

Commits
-------

c5123d6 CS: Pre incrementation/decrementation should be used if possible
2015-05-15 15:28:34 +02:00
..
Adapter CS: Binary operators should be arounded by at least one space 2015-03-27 23:05:05 +01:00
Comparator CS: Binary operators should be arounded by at least one space 2015-03-27 23:05:05 +01:00
Exception Merge branch '2.2' 2013-04-22 06:30:07 +02:00
Expression CS: Pre incrementation/decrementation should be used if possible 2015-04-07 19:54:22 +02:00
Iterator use value of DIRECTORY_SEPARATOR to detect Windows 2014-12-30 12:17:23 +01:00
Shell CS: Binary operators should be arounded by at least one space 2015-03-27 23:05:05 +01:00
Tests minor #14121 CS: Pre incrementation/decrementation should be used if possible (gharlan) 2015-05-15 15:28:34 +02:00
.gitignore Added missing files .gitignore 2013-07-21 14:12:18 +02:00
CHANGELOG.md [Finder] updated CHANGELOG 2013-04-22 15:01:19 +02:00
composer.json link to https://symfony.com where possible 2015-05-01 16:06:45 +02:00
Finder.php Php Inspections (EA Extended) - static code analysis includes: 2015-03-07 20:12:23 +01:00
Glob.php CS: Pre incrementation/decrementation should be used if possible 2015-04-07 19:54:22 +02:00
LICENSE Updated copyright to 2015 2015-01-01 13:56:52 +01:00
phpunit.xml.dist [2.3] require-dev PHPUnit bridge 2015-02-24 11:24:26 +01:00
README.md link to https://symfony.com where possible 2015-05-01 16:06:45 +02:00
SplFileInfo.php [2.3] CS And DocBlock Fixes 2014-12-22 16:58:09 +01:00

Finder Component

Finder finds files and directories via an intuitive fluent interface.

use Symfony\Component\Finder\Finder;

$finder = new Finder();

$iterator = $finder
  ->files()
  ->name('*.php')
  ->depth(0)
  ->size('>= 1K')
  ->in(__DIR__);

foreach ($iterator as $file) {
    print $file->getRealpath()."\n";
}

The iterator returns instances of Symfony\Component\Finder\SplFileInfo\SplFileInfo. Besides the build-in methods inherited from \SplFileInfo (getPerms(), getSize(), ...), you can also use getRelativePath() and getRelativePathname(). Read the official documentation for more information.

But you can also use it to find files stored remotely like in this example where we are looking for files on Amazon S3:

$s3 = new \Zend_Service_Amazon_S3($key, $secret);
$s3->registerStreamWrapper("s3");

$finder = new Finder();
$finder->name('photos*')->size('< 100K')->date('since 1 hour ago');
foreach ($finder->in('s3://bucket-name') as $file) {
    print $file->getFilename()."\n";
}

Resources

You can run the unit tests with the following command:

$ cd path/to/Symfony/Component/Finder/
$ composer install
$ phpunit