Laravel ha sido uno de los frameworks PHP más populares durante muchos años. Es elegante, escalable, se ha convertido en uno de los frameworks de facto para los desarrolladores y empresas que trabajan con PHP. Ahora, Laravel 9 está en camino con una tonelada de nuevas características.

En el pasado, los nuevos lanzamientos se han producido cada seis meses, lo que ha dado lugar a una buena cantidad de preguntas, comentarios duros y confusión sobre el nuevo proceso de lanzamiento de Laravel. Con el lanzamiento de Laravel 9, el framework ha pasado a tener un ciclo de lanzamiento mayor de 12 meses y saldrá en enero de 2022.

Este artículo explora las características clave de Laravel 9. Además, también detallaremos cómo actualizar a Laravel 9 y empezar a desarrollar aplicaciones web.

¿Qué es Laravel?

Laravel es un framework de aplicaciones web PHP de código abierto conocido por su elegante sintaxis. Es un framework MVC para construir aplicaciones web simples y complejas utilizando el lenguaje de programación PHP, y sigue estrictamente el patrón arquitectónico MVC (modelo-vista-controlador).

Si no has usado Laravel, puedes leer sobre qué es Laravel y echar un vistazo a nuestra lista de excelentes tutoriales de Laravel para empezar.

Características principales de Laravel

Si eres nuevo en este framework, hemos recopilado algunas de las mejores características de Laravel para que lo entiendas mejor.

Características de Laravel en burbujas.
Características de Laravel en burbujas. (Fuente de la imagen: Moon Technolabs)

Eloquent ORM

El mapeador objeto-relacional (ORM) para Laravel se llama Eloquent, y es una de las mejores características de Laravel, ya que permite una interacción perfecta con el modelo de datos y la base de datos de elección.

Con Eloquent, Laravel abstrae todos los obstáculos que implican interactuar y escribir complejas consultas SQL para acceder a los datos de tu base de datos.

Artisan CLI

El Artisan CLI, o línea de comandos, es otro aspecto vital de Laravel. Con él, puedes crear o modificar cualquier parte de Laravel desde la línea de comandos sin tener que navegar por carpetas y archivos.

Con Artisan, puedes incluso interactuar con tu base de datos directamente desde tu línea de comandos usando Laravel Tinker – todo sin instalar un cliente de base de datos.

Arquitectura MVC

La naturaleza de la arquitectura MVC de Laravel hace que el lenguaje sea relacionable y adaptable, ya que sigue un patrón de desarrollo web prevalente con mejoras continuas y significativas.

Laravel te obligará a aprender y entender el patrón arquitectónico MVC, popular y utilizado en casi todos los frameworks, como AdonisJS de JavaScript y ASP.NET MVC de C#.

Paginación automática

Si alguna vez has tenido problemas con la paginación en tus aplicaciones, entenderá el valor de tener la paginación ordenada por un marco incorporado.

Laravel resuelve el problema de la paginación construyendo una paginación automática que viene directamente de la caja. Esta característica es una de las más reconocidas, y elimina el trabajo que supone resolver el misterio de la paginación por ti mismo.

Seguridad

Es esencial examinar las medidas de seguridad de cualquier aplicación web que esté considerando utilizar, ya que la falta de la debida diligencia puede provocar la pérdida de fondos o incluso el secuestro de tu sitio o producto.

Laravel viene con muchas medidas de seguridad debido a su adhesión a los principios de seguridad OWASP. Desde la falsificación de peticiones entre sitios (CSRF) hasta la inyección SQL, Laravel tiene una solución integrada para todo.

Qué te puedes esperar de Laravel 9

Programado para ser lanzado en septiembre de 2021, Laravel 9 ha sido empujado a enero de 2022, convirtiéndolo en el primer lanzamiento de soporte a largo plazo (LTS) que se introducirá siguiendo el ciclo de lanzamiento de 12 meses. Este retraso se debe a muchas razones, entre las que se encuentran las siguientes:

  1. Laravel utiliza variedades de proyectos impulsados por la comunidad y unas nueve bibliotecas de Symfony. Sin embargo, Symfony tiene previsto el lanzamiento de la versión 6.0 para noviembre de 2021. El retraso permitirá al equipo de Laravel incorporar esta nueva versión de Symfony como parte de Laravel 9.
  2. El retraso dará tiempo al equipo para supervisar cómo Laravel interactúa con la nueva versión de Symfony durante dos meses. También les da margen para corregir cualquier cambio o error de última hora.
  3. Por último, retrasar el lanzamiento de Laravel 9 posiciona mejor al equipo de Laravel para futuros lanzamientos anuales. Le dará al equipo dos meses de tiempo adicional de aceleración después de los lanzamientos de Symfony.

Por estas razones, se puede ver que el retraso en su lanzamiento merece la pena la espera.

Nuevas características de Laravel 9

Ahora, vamos a explorar la lista de las características y mejoras que debe esperar en la próxima versión principal de Laravel.

Requisito mínimo de PHP

Primero y más importante, Laravel 9 requiere la última versión de PHP 8 y PHPUnit 8 para las pruebas. Esto se debe a que Laravel 9 utilizará la más reciente Symfony v6.0, que también requiere PHP 8.

PHP 8 viene con mejoras y características significativas, desde la compilación JIT hasta la promoción de propiedades del constructor. Puedes explorar los diferentes puntos de referencia delas versiones de PHP y aprender a actualizar a la última versión de PHP 8 aquí en nuestro blog.

Migración anónima de stub

Laravel establece que la migración anónima de stub es el comportamiento por defecto cuando se ejecuta el comando de migración popular:

php artisan make:migration

La función de migración anónima de stub se lanzó por primera vez en Laravel 8.37 para resolver este problema de Github. El problema es que múltiples migraciones con el mismo nombre de clase pueden causar problemas al intentar recrear la base de datos desde cero. La nueva función de migración stub elimina las colisiones de nombres de clases de migración.

A partir de Laravel 8.37, el framework soporta ahora archivos de migración de clases anónimas, y en Laravel 9, será el comportamiento por defecto.

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('people', function (Blueprint $table)
        {
            $table->string('first_name')->nullable();
        });
    }
};

Nueva interfaz del generador de consultas

Con el nuevo Laravel 9, el type hinting es muy fiable para la refactorización, el análisis estático y la finalización de código en sus IDEs. Esto se debe a la falta de interfaz compartida o herencia entre Query\Builder, Eloquent\Builder, y Eloquent\Relation. Sin embargo, con Laravel 9, los desarrolladores pueden ahora disfrutar de la nueva interfaz del constructor de consultas para la sugerencia de tipos, la refactorización y el análisis estático.

<?php

return Model::query()
	->whereNotExists(function($query) {
		// $query is a Query\Builder
	})
	->whereHas('relation', function($query) {
		// $query is an Eloquent\Builder
	})
	->with('relation', function($query) {
		// $query is an Eloquent\Relation
	});

Esta versión ha añadido la nueva Illuminate\Contracts\Database\QueryBuilder interface, así como el trait Illuminate\Database\Eloquent\Concerns\DecoratesQueryBuilder que implementará la interfaz en lugar del método mágico __call .

Funciones de cadena de PHP 8

Dado que Laravel 9 se dirige a PHP 8, Laravel fusionó este PR, sugiriendo el uso de las funciones de cadena más recientes de PHP 8.

Estas funciones incluyen el uso de str_contains(), str_starts_with(), y str_ends_with() internamente en la clase \Illuminate\Support\Str .

Las características y mejoras de Laravel 9 enumeradas anteriormente son un adelanto de lo que está por venir. Definitivamente traerá un montón de correcciones de errores, características y, por supuesto, muchos cambios de ruptura.

Cómo instalar Laravel 9

Si quieres empezar a jugar con Laravel 9 con fines de desarrollo y pruebas, puedes instalarlo y ejecutarlo fácilmente en tu máquina local.

Laravel 9 es compatible con la versión 8 de PHP, así que si estás planeando probarlo, asegúrate de comprobar tu versión de PHP o inicia una instalación nueva.

Puede descubrir más detalles sobre el lanzamiento a través de Packagist.

Para instalar Laravel 9 usando Composer, ejecuta lo siguiente:

composer create-project --prefer-dist laravel/laravel laravel-9-dev dev-develop

El comando anterior creará un nuevo proyecto Laravel con el nombre de proyecto laravel-9-dev, utilizando la última versión de Laravel 9, que, como sabemos, todavía está en desarrollo (de ahí dev-develop).

El segundo método es utilizar la CLI global de Laravel para crear un nuevo proyecto Laravel y elegir crear tu nuevo proyecto desde la rama dev.

Introduce el siguiente comando para crear un nuevo proyecto Laravel 9:

laravel new laravel-9-dev --dev

Ahora que has instalado Laravel 9, puedes entrar en el nuevo directorio (laravel-dev) y ejecutar el comando artisan para comprobar la versión:

cd laravel-9-dev
php artisan --version

Debería presentarte la versión de desarrollo de Laravel 9. Ya está.

Resumen

Laravel es un atractivo framework PHP que está ganando más atención entre los desarrolladores. Su próxima gran versión (Laravel 9) es la primera que sigue un ciclo de lanzamiento de 12 meses, y ya podemos ver que introducirá «jugosas» nuevas características.

¿Es esta la lista completa de nuevas características? Probablemente no, ya que el equipo de Laravel probablemente anunciará nuevas características antes de la fecha de lanzamiento. Así que asegúrate de marcar este post ya que las cubriremos en futuras actualizaciones.

Ahora, ¡es tu turno! ¿Qué es lo que más esperas de Laravel 9? ¡Háznoslo saber en la sección de comentarios!

Solomon Eseme

I am a Software Engineer and Content Creator who is geared toward building high-performing and innovative products following best practices and industry standards. I also love writing about it at Masteringbackend.com. Follow me on Twitter, LinkedIn, and About Me