Basic Usage
Common glob patterns and everyday usage examples.
Finding Files
Section titled “Finding Files”use Cline\Globby\Globby;
// Single pattern$files = Globby::find('*.php');
// Multiple patterns$files = Globby::find(['*.php', '*.js', '*.ts']);
// With base directory$files = Globby::find('**/*.php', cwd: '/path/to/project');Pattern Examples
Section titled “Pattern Examples”By Extension
Section titled “By Extension”// Single extension$php = Globby::find('**/*.php');
// Multiple extensions$code = Globby::find('**/*.{php,js,ts}');
// Any file$all = Globby::find('**/*');By Directory
Section titled “By Directory”// Files in src$src = Globby::find('src/**/*');
// Files in tests$tests = Globby::find('tests/**/*');
// Multiple directories$files = Globby::find('{src,lib}/**/*.php');By Name Pattern
Section titled “By Name Pattern”// Files starting with Test$tests = Globby::find('**/Test*.php');
// Files ending with Test$tests = Globby::find('**/*Test.php');
// Files containing "config"$configs = Globby::find('**/*config*');Working with Results
Section titled “Working with Results”$files = Globby::find('**/*.php');
// Iterateforeach ($files as $file) { echo $file->getPathname() . "\n";}
// Convert to array$paths = $files->toArray();
// Get count$count = $files->count();
// Filter further$large = $files->filter(fn($f) => $f->getSize() > 1024);Exclusions
Section titled “Exclusions”// Exclude single pattern$files = Globby::find('**/*.php', exclude: ['vendor/**']);
// Exclude multiple patterns$files = Globby::find('**/*.php', exclude: [ 'vendor/**', 'node_modules/**', '**/cache/**',]);Options
Section titled “Options”$files = Globby::find('**/*.php', [ 'cwd' => '/path/to/project', // Base directory 'dot' => true, // Include dotfiles 'followSymlinks' => false, // Don't follow symlinks 'onlyFiles' => true, // Only files, not directories 'onlyDirectories' => false, // Only directories]);