FastLight Logo

FastLight Framework 2 DOCS

Documentación de filelist

La clase FileList

Índice

Trabajando con los métodos estáticos

FileList::get()

El método estático FileList::get() recupera una lista de entradas de directorio a modo de array de strings. Alternativamente, se puede trabajar con objetos de tipo FileList y usar el método getEntries() para realizar la misma tarea.

Si invocamos el método sin parámetros, retorna un listado de entradas del directorio actual, sin las entradas especiales '.' (directorio actual) ni '..' (directorio de orden superior).

Ejemplo

// Muestra el contenido de la carpeta actual $lista = FileList::get(); dump($lista);

Listar un directorio distinto al actual

El método FileList::get() puede recibir como primer parámetro la ruta del directorio a escanear.

// Muestra el contenido de la carpeta templates $lista = FileList::get('../templates'); dump($lista);

Listado con filtro por extensión

El método FileList::get() puede recibir como segundo parámetro un listado de extensiones. Solamente listará entradas coincidentes con esas extensiones.

// Ficheros php, ini o xml de la carpeta public: $lista = FileList::get('../public', ['xml','php','ini']); dump($lista);

Listado con filtro de expresión regular

El método FileList::get() también puede recibir como segundo parámetro una expresión regular. Solamente listará entradas coincidentes con esa expresión regular.

// Ficheros php o txt de la carpeta public $lista = FileList::get('../public', '/\.(php|txt)$/i'); dump($lista);

Entradas especiales '.' y '..'

Se puede indicar si queremos mostrar las entradas especiales . y .. (por defecto no se mostrarán).

// Ficheros PNG en public/images/template sin listar el '.' ni '..' $lista = FileList::get('../public/images/template', ['png']); dump($lista);

Si queremos que liste las entradas especiales '.' y '..' podemos indicarlo mediante el tercer parámetro (por defecto false).

// Ficheros PNG en public/images/template lsitando el '.' y el '..' $lista = FileList::get('../public/images/template', ['png'], true); dump($lista);

Si no queremos aplicar filtro, el segundo parámetro puede ser NULL, cadena vacía o array vacío (pero no podemos omitirlo).

// Contenido de la carpeta public/images/template con las entradas '.' y '..' incluidas $lista = FileList::get('../public/images/template', NULL, true); dump($lista);

Recuperando listas de objetos File

El método FileList::getFiles() permite recuperar una lista de objetos de tipo File, en lugar de una lista de strings. Al igual que los otros métodos, puede recibir una expresión regular o un array de extensiones para aplicar el filtro.

Alternativamente, se puede trabajar con objetos de tipo FileList y usar el método getFiles() para realizar la misma tarea.

// Ficheros php de la carpeta public $lista = FileList::files('../public', ['php']); dump($lista);

Al recuperar así los ficheros, podremos usar los métodos de File sobre cada uno de los ficheros de la carpeta, por ejemplo:

// Ficheros php de la carpeta public $ficheros = FileList::files('../public', ['php']); foreach($ficheros as $fichero){ echo "Ruta: ".$fichero->getPath(); echo "Extensión: ".$fichero->getExtension(); echo "Size: ".$fichero->getSize()." bytes"; }

Trabajando con los métodos de objeto

getEntries()

El método de objeto getEntries() recupera una lista de entradas de directorio a modo de array de strings. Puede recibir la expresión regular para el filtro o el array de extensiones para el filtrado.

// Lista de ficheros CSS en la carpeta css $fileList = new FileList('css'); $ficheros = $fileList->getEntries(['css']); dump($ficheros);

getFiles()

El método de objeto getFiles() recupera una lista de entradas de directorio a modo de array de File. Puede recibir la expresión regular para el filtro o el array de extensiones para el filtrado.

// Ficheros cuyo nombre comienza por 'base' en la carpeta css $fileList = new FileList('css'); $ficheros = $fileList->getFiles("/^base/"); dump($ficheros);

Fin de la documentación filelist

Lista de ejemplos.

FastLight Framework 2 DOCS, versión 2.0.10