Manejo mejorado de errores del sistema de archivos en Laravel

  • Publicado el 18 febrero, 2025
  • Palabras: 130

Laravel mejora el manejo de errores del sistema de archivos con nuevas opciones de configuración, lo que le permite registrar errores del sistema de archivos sin interrumpir el flujo de su aplicación.

Manejo mejorado de errores del sistema de archivos en Laravel

La gestión de errores del sistema de archivos implicaba tradicionalmente elegir entre capturar excepciones o permitir que interrumpieran la aplicación. Las nuevas opciones de configuración de Laravel ofrecen un punto intermedio, ya que permiten registrar errores de forma silenciosa y mantener la aplicación funcionando sin problemas. Veamos cómo funciona:

 

// config/filesystems.php
'disks' => [
    'local' => [
        'driver' => 'local',
        'root' => storage_path('app'),
        'throw' => false,  // Suppress exceptions
        'report' => true,  // Enable error logging
    ],
]

 

#Ejemplo práctico

A continuación se explica cómo podría usarlo en un sistema de gestión de archivos:

 

class FileManager
{
    public function handleUserUploads(array $files)
    {
        // Using disk configured to log errors without throwing
        $disk = Storage::disk('user-uploads');
        
        foreach ($files as $file) {
            // Operation continues even if some files fail
            if ($disk->put("uploads/{$file->hashName()}", $file)) {
                $this->markFileAsUploaded($file);
            }
        }
    }

    public function syncBackups()
    {
        return [
            // Critical backups - throw exceptions
            'critical' => Storage::disk('critical-backups')
                ->files('daily'),
                
            // Non-critical - just log errors
            'optional' => Storage::disk('optional-backups')
                ->files('weekly')
        ];
    }
}

// Disk configurations
'disks' => [
    'user-uploads' => [
        'driver' => 'local',
        'throw' => false,
        'report' => true,  // Log errors silently
    ],
    'critical-backups' => [
        'driver' => 's3',
        'throw' => true,   // Throw exceptions
    ],
    'optional-backups' => [
        'driver' => 's3',
        'throw' => false,
        'report' => true,  // Just log errors
    ],
]

 

Las nuevas opciones de configuración proporcionan un control granular sobre el comportamiento de manejo de errores. Esto es particularmente valioso cuando se trabaja con diferentes tipos de operaciones del sistema de archivos con distintos niveles de criticidad.

Piense en esto como una estrategia de manejo de errores configurable: puede elegir entre un manejo estricto basado en excepciones y un registro silencioso según los requisitos de cada disco.

 

Antonio Jenaro
Antonio Jenaro

Web Developer

Archivado en:

Fuente: Harris Raftopoulos

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión