zediz / frieren
Utilería PHP para manejo de archivos en bucket y envío de correos electrónicos.
v1.0.2
2026-03-26 23:05 UTC
Requires
- php: ^8.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- phpmailer/phpmailer: ^6.9
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpstan/phpstan: ^1.0
- phpunit/phpunit: ^11.0
README
Utilería PHP para manejo de archivos en bucket y envío de correos electrónicos. Requiere PHP 8.0+.
Instalación
composer require zediz/frieren
Variables de entorno requeridas
# Almacenamiento FILE_BASE_URL=https://tu-bucket.com FILE_STORAGE_PASSWORD=tu-token FILE_STORAGE_FOLDER=mi-proyecto/ # Email HOST=smtp.tuservidor.com EMAIL=noreply@tudominio.com EMAIL_PASSWORD=tu-password PORT=587 SENDER_NAME=Tu Empresa PRODUCTION=false # Solo en desarrollo TEST_EMAIL=dev@tudominio.com # Solo en producción (BCC de calidad) QC_EMAIL=qc@tudominio.com
Uso
Manejo de archivos
use Zediz\Frieren\Frieren; // Subir un archivo desde $_FILES $resultado = Frieren::saveFile($_FILES, '/usuarios/avatars'); // $resultado => ['path' => '...', 'filename' => '...', 'size' => ..., 'mime' => '...'] // Mover un archivo dentro del bucket $movido = Frieren::moveFile('/usuarios/temp/foto.jpg', '/usuarios/definitivo'); // Eliminar un archivo $eliminado = Frieren::deleteFile('mi-proyecto/usuarios/foto.jpg');
Envío de correos
use Zediz\Frieren\Frieren; // Enviar correo directo $enviado = Frieren::sendEmail( recipients: ['Juan Pérez' => 'juan@ejemplo.com'], subject: 'Bienvenido', body: '<h1>Hola Juan</h1>' ); // Usar un template HTML $body = Frieren::parseEmailTemplate('bienvenida', [ '||NOMBRE||' => 'Juan', '||LINK||' => 'https://miapp.com/activar/abc123', ]); Frieren::sendEmail(['Juan Pérez' => 'juan@ejemplo.com'], 'Bienvenido', $body);
Los templates deben estar en la carpeta email_templates/ en la raíz del proyecto:
tu-proyecto/
├── email_templates/
│ ├── bienvenida.html
│ └── recuperar-password.html
├── composer.json
└── ...
Testing
composer test
Changelog
Please see CHANGELOG.md for recent changes.
License
The MIT License (MIT). Please see LICENSE for more information.