Solo Laravel

Noticias, Tips, Tutoriales

Laravel 11.31 presenta constructores de cache, base de datos y mail on-demand

Laravel 11.31 presenta constructores de cache, base de datos y mail on-demand

El pasado 12 de noviembre se publicó la versión 11.31 de Laravel que incluye constructores de DB, Mail y Cache de forma dinámica, esto, utilizando los respectivos facades, evitando así tener que utilizar una conexión definida a través de los archivos de configuración.

Configurar conexión a base de datos de forma dinámica con DB::build()

DB::build() permitirá al desarrollador crear una nueva conexión a una base de datos de forma dinámica, de la siguiente forma:

$sqlite = DB::build([
    'driver' => 'sqlite',
    'database' => ':memory:',
]);

$mysql = DB::build([
    'driver' => 'mysql',
    'database' => 'forge',
    'username' => 'root',
    'password' => 'secret',
]);

Fuente: PR #53464

Configurar mailer de forma dinámica con Mail::build()

Al igual que con el facade DB, Mail también tiene un nuevo método Build, el cual permite configurar un mailer de forma dinámica para utilizarla on-demand:

$mailer = Mail::build([
    'transport' => 'smtp',
    'host' => '127.0.0.1',
    'port' => 587,
    'encryption' => 'tls',
    'username' => 'usr',
    'password' => 'pwd',
    'timeout' => 5,
]);

$mailer->send($mailable);

Fuente: PR #53411

Repositorios de caché dinámicos con Cache::build()

Finalmente, el método Cache::build nos permitirá crear repositorios de caché de la siguiente forma:

$apc = Cache::build([
    'driver' => 'apc',
]);

$array = Cache::build([
    'driver' => 'array',
    'serialize' => false,
]);

$database = Cache::build([
    'driver' => 'database',
    'table' => 'cache',
    'connection' => null,
    'lock_connection' => null,
]);

$file = Cache::build([
    'driver' => 'file',
    'path' => storage_path('framework/cache/data'),
]); 

Fuente: PR #53454


Un caso de uso podría ser cuando se requiere extraer información de una base de datos externa, a la que el usuario se podría conectar, o realizar un envío de correo con una configuración propia del usuario.

Esta información y los cambios están descritos en el changelog de Laravel v11.31.0