SAND-framework/console/skel/symfony/finder/Symfony/Component/Finder
2020-12-09 10:26:26 +01:00
..
Adapter update php-cs-fixer 2020-12-09 10:26:26 +01:00
Comparator Ajout de dernière update dans le bin de la console module 2020-04-01 11:54:24 +02:00
Exception Ajout de dernière update dans le bin de la console module 2020-04-01 11:54:24 +02:00
Expression Ajout de dernière update dans le bin de la console module 2020-04-01 11:54:24 +02:00
Iterator Ajout de dernière update dans le bin de la console module 2020-04-01 11:54:24 +02:00
Shell update php-cs-fixer 2020-12-09 10:26:26 +01:00
Tests update php-cs-fixer 2020-12-09 10:26:26 +01:00
.gitignore Ajout de dernière update dans le bin de la console module 2020-04-01 11:54:24 +02:00
CHANGELOG.md Ajout de dernière update dans le bin de la console module 2020-04-01 11:54:24 +02:00
composer.json Ajout de dernière update dans le bin de la console module 2020-04-01 11:54:24 +02:00
Finder.php Ajout de dernière update dans le bin de la console module 2020-04-01 11:54:24 +02:00
Glob.php Ajout de dernière update dans le bin de la console module 2020-04-01 11:54:24 +02:00
LICENSE Ajout de dernière update dans le bin de la console module 2020-04-01 11:54:24 +02:00
phpunit.xml.dist Ajout de dernière update dans le bin de la console module 2020-04-01 11:54:24 +02:00
README.md Ajout de dernière update dans le bin de la console module 2020-04-01 11:54:24 +02:00
SplFileInfo.php Ajout de dernière update dans le bin de la console module 2020-04-01 11:54:24 +02: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.phar install
$ phpunit