<?php
function walkFiles(string $root, ?callable $filter = null): Generator {
$it = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($root, FilesystemIterator::SKIP_DOTS)
);
foreach ($it as $file) {
if (!$file->isFile()) continue;
if ($filter && !$filter($file)) continue;
yield $file->getPathname();
}
}
// Every .php file under src/
foreach (walkFiles('src/', fn($f) => $f->getExtension() === 'php') as $path) {
echo $path, PHP_EOL;
}
Create a free account and build your private vault. Share publicly whenever you want.