Todos los artículos

Una Nueva Regla de Validación y la Capacidad de Fallar Manualmente un Comando en Laravel 11.8

Julian Beaujardin
Julian Beaujardin May 22nd, 2024

Este semana, el equipo de Laravel lanzó la versión v11.8, con una nueva regla de validación, la capacidad de fallar un comando fuera del método handle(), crear una vista durante make:mail, y más.

Mostrar Eventos en el Comando model:show

Wendell Adriel contribuyó con una sección de Eventos al comando model:show que muestra cualquier evento definido en la propiedad $dispatchesEvents:

Nueva Regla de Validación contains

Andrew Brown contribuyó con una regla de validación contains que verifica que los valores esperados estén incluidos en el array de entrada dado:

return [
    'allowed_ips'   => ['present', 'nullable', 'array', 'contains:' . $request->ip()],
    'allowed_ips.*' => ['required', 'ip'],
];

En la descripción del PR, este ejemplo asegura que la IP del usuario esté en el array allowed_ips. También puedes pasar múltiples parámetros, lo que requeriría que todos los parámetros estén presentes en el array de datos. Consulta Pull Request #51348 para más detalles.

Capacidad para Fallar Manualmente un Comando

Len Woodward contribuyó con la capacidad de fallar manualmente un comando Artisan fuera del método handle(). Al igual que el método de conveniencia $this->fail() de Queue, los comandos ahora pueden fallar un trabajo manualmente:

public function handle()
{
    $this->trigger_failure();
}

protected function trigger_failure()
{
    $this->fail('¡Ups!');
}

Consulta Pull Request #51435 para detalles de implementación y ejemplos de cómo este método podría ser útil en comparación con otros enfoques existentes para fallar temprano en un comando.

Crear una Vista Blade con make:mail

Ryan Chandler contribuyó con una bandera --view al comando make:mail que creará un archivo Blade vacío y configurará el Mailable creado para usarlo por defecto. Funciona de la misma manera que la opción existente --markdown y ahorra el paso manual de crear y conectar una plantilla de correo Blade.

php artisan make:mail OrderShipped --view=mail.orders.shipped

Notas de la Versión

Puedes ver la lista completa de nuevas características y actualizaciones a continuación y la diferencia entre 11.7.0 y 11.8.0 en GitHub. Las siguientes notas de la versión son directamente del changelog.