83ee704816
* 2.5: Configure firewall's kernel exception listener with configured entry point or a default entry point PSR-2 fixes [DependencyInjection] make paths relative to __DIR__ in the generated container Fixed the syntax of a composer.json file Fixed the symfony/config version constraint Tweaked the password-compat version constraint Docblock fixes Remove dialog usage define constant only if it wasn't defined before Fix incorrect spanish translation Fixed typos Conflicts: src/Symfony/Bundle/TwigBundle/Controller/ExceptionController.php src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php src/Symfony/Component/OptionsResolver/Options.php src/Symfony/Component/OptionsResolver/OptionsResolverInterface.php src/Symfony/Component/Process/ProcessPipes.php src/Symfony/Component/Security/Http/Tests/Firewall/RememberMeListenerTest.php src/Symfony/Component/Serializer/Normalizer/DenormalizableInterface.php src/Symfony/Component/Validator/ConstraintViolation.php src/Symfony/Component/Yaml/Inline.php src/Symfony/Component/Yaml/Parser.php |
||
---|---|---|
.. | ||
Adapter | ||
Comparator | ||
Exception | ||
Expression | ||
Iterator | ||
Shell | ||
Tests | ||
.gitignore | ||
CHANGELOG.md | ||
composer.json | ||
Finder.php | ||
Glob.php | ||
LICENSE | ||
phpunit.xml.dist | ||
README.md | ||
SplFileInfo.php |
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