Imprimir

Filesystem

Gestor del sistema de archivos.

 

Filesystem::__construct

public Filesystem::__construct( string $abspath = SYSTEM_ABSPATH )
abspath

Ruta absoluta. Por defecto será la indicada en la constante del sistema: SYSTEM_ABSPATH.

 

Filesystem::setMode

Guarda el modo con que serán creados los archivos.

public Filesystem::setMode ( int $mode ): void
mode

El modo con el que, si es necesario, se crearán los directorios. Se utiliza en Filesystem::copy

 

Filesystem::scandir

Escanea un directorio. Devuelve los archivos y carpetas hallados.

public Filesystem::scandir ( string $dir = '', array $ignore = [] ): array
dir

El directorio a escanear.

ignore

Archivos a ignorar.

 

Filesystem::mkdir

public Filesystem::mkdir ( string $dir, int $mode = null ): bool
dir

El directorio a crear.

mode

El modo con el que, si es necesario, se crearán los directorios.

 

Filesystem::copy

Copia archivos y directorios. En éste último caso, copiará todo su contenido.

public Filesystem::copy ( string $from, string $to ): bool
from

La ruta de la fuente. De no existir, devolverá false.

to

La ruta de destino.

 

Filesystem::rename

Renombra archivos y directorios.

Si deseamos renombrar un directorio y ya existe el directorio de destino, los mezclará, rescribiendo cualquier archivo de igual nombre.

public Filesystem::rename ( string $from, string $to ): bool
from

La ruta de la fuente. De no existir devolverá false.

to

La ruta de destino.

 

Filesystem::remove

Remueve un directorio de manera recursiva.

public Filesystem::remove ( string $node ): bool
node

La ruta a remover, puede ser un archivo o una carpeta.

 

Filesystem::removeDirIfEmpty

Remueve los directorios, de manera recursiva, sólo si están vacíos.

public Filesystem::removeDirIfEmpty ( string $dir, array $ignore = [] ): bool
dir

El directorio a eliminar.

ignore

Archivos que, de existir, no los tomará en cuenta.

 

Filesystem::chmod

Cambia los permisos de archivos y/o directorios.

public Filesystem::chmod ( string $node, int $mode[, $option = 0] ): bool
node

La ruta al archivo o directorio.

mode

El modo, puede ser octal u decimal.

option

Las opciones pueden ser:

 

Filesystem::sanitizeDir

Fuerza a que la ruta de un directorio finalice con un separador determinado.

 

public Filesystem::sanitizeDir ( string &$dir, string $separator = DIRECTORY_SEPARATOR ): void
dir

El directorio a sanitizar.

separator

Barra de separación.

MediaStorage

Se encarga de la ruta base a la carpeta media. Esta carpeta se utiliza para que las aplicaciones guarden los archivos estáticos que suben los usuarios, estos archivos pueden ser: imágenes, videos, documentos, etc.

 

MediaStorage::getPath

Devuelve la ruta absoluta al directorio media/.

public MediaStorage::getPath( string $path = '' ): string
path

Concatena la ruta a continuación de la ruta absoluta.

También, acepta una clave de configuración, lo que hará buscar en las configuraciones la ruta a concatenar.

 

MediaStorage::getUrl

Devuelve la url al directorio media/.

public MediaStorage::getUrl( string $path = '', bool $absolute = false): string
path

Concatena la ruta a continuación de la url.

También, acepta una clave de configuración, lo que hará buscar en las configuraciones la url a concatenar.

absolute

Opción para cambiar entre url absoluta o parcial.

 

Ejemplos

$media_path = media_path(); // -> absolute/path/to/media/
$media_url = media_url('contents.image_path', true) // -> https://example.com/media/contents/image/
 

 

UploadedFileManager

Gestiona la carga de archivos. 

 

Ejemplo inicial

// upload
$ufm = new UploadedFileManager($uploadedFile);
$ufm->moveTo('the/directory/');

$filename = $ufm->getFilename();

 

UploadedFileManager::__construct

public FilesUploadedManager::__construct ( UploadedFileInterface|array|null $UploadedFile[ , bool $isMultiple = false ] )
UploadedFile

Puede ser un objeto UploadedFileInterface o, en caso de ser multiple, un array de ellos. También acepta un valor null.

isMultiple

Corresponde con la carga multiple de archivos.

 

UploadedFileManager::validate

Valida los archivos agregados. Si uno de los parámetros es false, no se validará. En caso de fallo, lanza una Exception.

public UploadedFileManager::validate ( array $rules = null ): void
rules

Las reglas podrán ser:

Clave Descripción
allow_extensions Verifica que la extensión del archivo se encuentre entre las permitidas. Puede ser un array o una cadena separada por comas.
max_size Verifica que el peso del archivo no supere el máximo establecido. El valor esta dado en bytes.
max_chars Verifica que el nombre del archivo contenga menos caracteres que el máximo establecido.
max_files Verifica la cantidad de archivos subidos.

 

UploadedFileManager::moveTo

Mueve los archivos agregado. En caso de fallo, lanza una Exception.

public UploadedFileManager::moveTo ( string $targetPath, int $rename = 0, bool $rewrite = false ): void
targetPath

Ruta al directorio donde se guardarán los archivos.

rename

Uno de los modos en que puede ser renombrado el archivo a subir.

rewrite

Está opción permite reescribir un archivo existente cuando se sube uno de igual nombre. En caso de optar por no reescribir, se lanzará una excepción.

 

UploadedFileManager::setCurrentFile

Configura el archivo actual, para que, en caso de ser necesario, se reemplace por el nuevo archivo.

public UploadedFileManager::setCurrentFile( ?string $filename = null)
filename

El nombre del archivo actual.

 

UploadedFileManager::getUploadedFile

Obtiene el objeto UploadedFile que se está administrando, o un array de ellos en caso de ser multiple.

public UploadedFileManager::getUploadedFile( ): mixed

 

UploadedFileManager::getUploadedFileData

Obtiene un array con los datos correspondientes a uno o multiples archivos.

public UploadedFileManager::getUploadedFileData( ): array

 

Valores devueltos

Los valores devueltos son:

[
 'clientFilename'    => 'original_name.extension',
 'filename'             => 'current_name.extension',
 'basename'           => 'current_name',
 'extension'           => 'extension'
];

 

UploadedFileManager::getClientFilename

Obtiene el nombre original del archivo, o un array de ellos.

public UploadedFileManager::getClientFilename( ): string|array

 

UploadedFileManager::getFilename

Obtiene el nombre del archivo, o un array de ellos.

public UploadedFileManager::getFilename( ): string|array

 

UploadedFileManager::$num_files

Devuelve el número de archivos agregados hasta el momento.

public UploadedFileManager::$num_files : int

 

UploadedImageManager

Extiende la clase UploadedManager para gestionar imágenes.

 

Redimensionar imágenes

El nuevo tamaño de una imagen va a estar dado por: el modo de la redimensión y un valor. A continuación, se muestra un cuadro con los modos posibles:

Modo Descripción Valor  
1 - Proportional Mantiene las proporciones de la imagen original.  int El tamaño máximo para el ancho o alto.
2 - Proportional area Mantiene las proporciones de la imagen original. Pero su tamañoestará dado por el área. int El tamaño máximo para el ancho o alto, siempre que se mantenga la proporcionalidad del área.
3 - Square La redimensión se forzará a una figura cuadrada. int  
4 - Exact
La redimensión se forzará a los tamaños pasados por valor.
string
Una cadena con el ancho u el alto, separados por una x, por ejemplo '100x80'
5 - Width Fija el ancho al valor pasado y calcula el alto. int El ancho.
6 - Height Fija el alto al valor pasado y calcula el ancho. int El alto.

 

UploadedImageManager::resize

Redimensiona un imagen a varios tamaños.

public UploadedImageManager::resize(
	string $resizes_path,
	mixed  $resizes,
	int    $resize_mode = 0,
	bool   $save_orig = true
): self

 Los parámetros son los mismos que en setResizes, ya que, internamente, lo primero que hace es configurar las redimensiones.

 

UploadedImageManager::setResizes

Guarda los valores para la redimensión. El método se utiliza para eliminar redimensiones de imágenes a partir de una original.

public UploadedImageManager::setResizes (
	string $resizes_path,
	mixed  $resizes,
	int    $resize_mode = 0,
	bool   $save_orig = true
): self
resizes_path

La ruta a la carpeta donde se guardarán las redimensiones.

La clase pone a disposición dos valores de relleno, que permiten resolver la ruta final de cada redimensión, estos valores son:

  1. {sizename}: el nombre clave de la redimensión.
  2. {filename}:  el nombre del archivo, incluida su extensión.
resizes

Si desea realizar una única redimensión, debe pasar el valor, que dependerá del modo.

Si desea realizar varias redimensiones, debe pasar un arreglo que contenga todas las redimensiones que desea realizar y sus respectivos valores, por ejemplo:

$resizes = ['small' => 120, 'large' => 1024];

Si desea que cada redimensión tenga su propio modo, puede optar por:

$resizes = [
	'small' => ['size' => 120, 'mode' => 1],
	'large' => ['size' => 1024, 'mode' => 2],
];

En este caso, puede ovbiarse el parámetro que sigue.

resize_mode

El modo en que se calcularan las nuevas dimensiones de la imagen.

save_orig

En caso de ser false, se eliminará la imagen original.

 

Administrar imágenes

UploadedImageManager::setOrder

Guarda el orden en que deben ser devuelta las imágenes.

public UploadedImageManager::setOrder ( string $order ): self
order

Una cadena con el nombre de las imágenes, separadas por una barra vertical |, con el orden deseado.

 

UploadedImageManager::setCurrentImage

Guarda la imagen actual. Luego, la reemplazará o no por la imagen cargada.

public UploadedImageManager::setCurrentImage ( string $filename = null ): self
filename

La ruta de la imagen actual.

 

UploadedImageManager::setCurrentImages

Guarda las imágenes actuales. Luego, las mezclará con las imágenes cargadas, eliminando las que no han sido incluídas.

public UploadedImageManager::setCurrentImages ( array|string $filenames, string $separator = ',' ): self
filenames

Un arreglo con las imágenes actuales. Si se ingresa una cadena, será dividida utilizando el separador.

separator

Separador de las rutas si son ingresadas como una cadena.