El paquete Splat] es una utilidad PHP creada por Chris Kankiewicz que proporciona coincidencias de archivos y patrones al estilo glob.
Con esta utilidad, puedes convertir patrones en expresiones regulares usando la instancia de Pattern proporcionada:
Ejemplo de Uso
// Devuelve '#^foo$#'
Pattern::make('foo')->toRegex();
// Devuelve '#^foo/bar.txt$#'
Pattern::make('foo/bar.txt')->toRegex();
// Devuelve '#^file.(yml|yaml)$#'
Pattern::make('file.{yml,yaml}')->toRegex();
// Puedes controlar los anclajes de línea también
// Devuelve '#foo#'
Pattern::make('foo')->toRegex(Glob::NO_ANCHORS);
// Devuelve '#^foo#'
Pattern::make('foo')->toRegex(Glob::START_ANCHOR);
// Devuelve '#^foo$#'
Pattern::make('foo')->toRegex(Glob::BOTH_ANCHORS);
Funciones de Glob de Archivos
Este paquete también incluye utilidades de glob para obtener una lista de archivos que coinciden con un patrón de archivo glob.
// Obtiene una lista de archivos en un directorio (devuelve un componente Finder de Symfony)
Glob::in('**.txt', 'some/file/path');
Glob::matchStart('foo/*', 'foo/bar.txt'); // true
Glob::matchStart('foo/*', 'bar/foo.txt'); // false
Glob::matchEnd('**.txt', 'foo/bar.txt'); // true
Glob::matchEnd('**.txt', 'foo/bar.log'); // false
Filtrar y Rechazar Nombres de Archivos
// Devuelve ['foo.txt', 'foo/bar.txt']
Glob::filter('**.txt', [
'foo', 'foo.txt', 'bar.zip', 'foo/bar.png', 'foo/bar.txt',
]);
// Devuelve ['foo', 'bar.zip', 'foo/bar.png']
Glob::reject('**.txt', [
'foo', 'foo.txt', 'bar.zip', 'foo/bar.png', 'foo/bar.txt',
]);
Más Información
Puedes aprender más sobre este paquete, obtener instrucciones completas de instalación y ver el código fuente en GitHub.
Artículos Relacionados
Descubre más desde CIBERED
Suscríbete y recibe las últimas entradas en tu correo electrónico.
