1. Introducción
  2. Notas de la Versión

Esquema de Versionado

Laravel y sus otros paquetes de primera parte siguen la Versión Semántica. Las versiones principales del framework se lanzan cada año (~Q1), mientras que las versiones menores y de parches pueden lanzarse tan frecuentemente como cada semana. Las versiones menores y de parches nunca deben contener cambios que rompan la compatibilidad.

Cuando hagas referencia al framework Laravel o a sus componentes desde tu aplicación o paquete, siempre debes usar una restricción de versión como ^10.0, ya que las versiones principales de Laravel incluyen cambios que rompen la compatibilidad. Sin embargo, nos esforzamos por asegurar siempre que puedas actualizar a una nueva versión principal en un día o menos.

Argumentos con Nombre

Argumentos con nombre no están cubiertos por las pautas de compatibilidad hacia atrás de Laravel. Podemos optar por cambiar los nombres de los argumentos de las funciones cuando sea necesario para mejorar el código base de Laravel. Por lo tanto, usar argumentos con nombre al llamar a métodos de Laravel debe hacerse con precaución y con la comprensión de que los nombres de los parámetros pueden cambiar en el futuro.

Política de Soporte

Para todas las versiones de Laravel, se proporcionan correcciones de errores durante 18 meses y correcciones de seguridad durante 2 años. Para todas las bibliotecas adicionales, incluyendo Lumen, solo la última versión principal recibe correcciones de errores. Además, revisa las versiones de bases de datos compatibles con Laravel.

Versión PHP (*) Lanzamiento Correcciones de Errores Hasta Correcciones de Seguridad Hasta
8 7.3 - 8.1 8 de septiembre de 2020 26 de julio de 2022 24 de enero de 2023
9 8.0 - 8.2 8 de febrero de 2022 8 de agosto de 2023 6 de febrero de 2024
10 8.1 - 8.2 14 de febrero de 2023 6 de agosto de 2024 4 de febrero de 2025
11 8.2 Q1 2024 5 de agosto de 2025 3 de febrero de 2026
End of life
Security fixes only

(*) Versiones de PHP compatibles

Laravel 10

Como sabrás, Laravel transitó a lanzamientos anuales con el lanzamiento de Laravel 8. Anteriormente, las versiones principales se lanzaban cada 6 meses. Esta transición tiene como objetivo aliviar la carga de mantenimiento en la comunidad y desafiar a nuestro equipo de desarrollo a ofrecer nuevas funciones sorprendentes y potentes sin introducir cambios que rompan la compatibilidad. Por lo tanto, hemos lanzado una variedad de funciones robustas en Laravel 9 sin romper la compatibilidad hacia atrás.

Por lo tanto, este compromiso de lanzar nuevas funciones excelentes durante la versión actual probablemente lleve a que las futuras versiones "principales" se utilicen principalmente para tareas de "mantenimiento" como actualizar dependencias ascendentes, lo cual se puede ver en estas notas de lanzamiento.

Laravel 10 continúa las mejoras realizadas en Laravel 9.x al introducir tipos de argumentos y de retorno a todos los métodos del esqueleto de la aplicación, así como a todos los archivos de plantilla utilizados para generar clases en todo el framework. Además, se ha introducido una nueva y amigable capa de abstracción para iniciar e interactuar con procesos externos. Además, Laravel Pennant se ha introducido para proporcionar un enfoque maravilloso para gestionar las "banderas de características" de tu aplicación.

PHP 8.1

Laravel 10.x requiere una versión mínima de PHP 8.1.

Tipos

Los tipos de esqueleto de aplicación y las sugerencias de tipo de stub fueron contribuidos por Nuno Maduro.

En su lanzamiento inicial, Laravel utilizó todas las características de sugerencia de tipo disponibles en PHP en ese momento. Sin embargo, se han agregado muchas funciones nuevas a PHP en los años siguientes, incluyendo sugerencias de tipo primitivo adicionales, tipos de retorno y tipos de unión.

Laravel 10.x actualiza minuciosamente el esqueleto de la aplicación y todas las plantillas utilizadas por el framework para introducir tipos de argumentos y de retorno a todas las firmas de método. Además, se ha eliminado la información de sugerencia de tipo "doc block" innecesaria.

Este cambio es completamente compatible con las aplicaciones existentes. Por lo tanto, las aplicaciones existentes que no tienen estas sugerencias de tipo seguirán funcionando normalmente.

Estandarte de Laravel

Laravel Pennant fue desarrollado por Tim MacDonald.

Se ha lanzado un nuevo paquete de primera parte, Laravel Pennant. Laravel Pennant ofrece un enfoque ligero y simplificado para gestionar las "banderas de características" de tu aplicación. De serie, Pennant incluye un controlador de array en memoria y un controlador de database para el almacenamiento persistente de características.

Las características se pueden definir fácilmente mediante el método Feature::define:

use Laravel\Pennant\Feature;
use Illuminate\Support\Lottery;
 
Feature::define('new-onboarding-flow', function () {
return Lottery::odds(1, 10);
});

Una vez que se ha definido una característica, puedes determinar fácilmente si el usuario actual tiene acceso a la característica dada:

if (Feature::active('new-onboarding-flow')) {
// ...
}

Por supuesto, para mayor comodidad, las directivas de Blade también están disponibles:

@feature('new-onboarding-flow')
<div>
<!-- ... -->
</div>
@endfeature

Pennant ofrece una variedad de funciones y APIs más avanzadas. Para obtener más información, consulta la documentación completa de Pennant.

Interacción de Procesos

La capa de abstracción de procesos fue contribuida por Nuno Maduro y Taylor Otwell.

Laravel 10.x introduce una hermosa capa de abstracción para iniciar e interactuar con procesos externos a través de una nueva fachada Process:

use Illuminate\Support\Facades\Process;
 
$result = Process::run('ls -la');
 
return $result->output();

Incluso los procesos pueden iniciarse en grupos, permitiendo la ejecución y gestión conveniente de procesos concurrentes:

use Illuminate\Process\Pool;
use Illuminate\Support\Facades\Process;
 
[$first, $second, $third] = Process::concurrently(function (Pool $pool) {
$pool->command('cat first.txt');
$pool->command('cat second.txt');
$pool->command('cat third.txt');
});
 
return $first->output();

Además, los procesos pueden simularse para realizar pruebas convenientes:

Process::fake();
 
// ...
 
Process::assertRan('ls -la');

Para obtener más información sobre la interacción con procesos, consulta la documentación completa de procesos.

Perfil de Pruebas

La creación de perfiles de prueba fue contribuida por Nuno Maduro.

El comando Artisan test ha recibido una nueva opción --profile que te permite identificar fácilmente las pruebas más lentas de tu aplicación:

php artisan test --profile

Para mayor comodidad, las pruebas más lentas se mostrarán directamente en la salida de la CLI:

Estructura de Pest

Ahora, los nuevos proyectos de Laravel pueden crearse con el andamiaje de pruebas Pest de forma predeterminada. Para optar por esta función, proporciona la bandera --pest al crear una nueva aplicación a través del instalador de Laravel:

laravel new example-application --pest

Solicitudes de la CLI del Generador

Las solicitudes de la CLI del generador fueron contribuidas por Jess Archer.

Para mejorar la experiencia del desarrollador del framework, todos los comandos make integrados de Laravel ya no requieren ninguna entrada. Si los comandos se invocan sin entrada, se te pedirá los argumentos requeridos:

php artisan make:controller

Renovación de Horizon / Telescope

Horizon y Telescope se han actualizado con un aspecto nuevo y moderno, que incluye una tipografía, espaciado y diseño mejorados:

<img src="https://laravel-docs.com/images/docs/10.x/horizon-example.png">