En este videotutorial del Curso de Novedades de Laravel 11, aprenderemos sobre las nuevas opciones de instalación de Laravel para incluir API y Broadcasting en tus aplicaciones. También veremos los cambios en la nueva versión del instalador de Laravel, los cuales nos ayudarán a crear nuestras aplicaciones de acuerdo a los requerimientos de nuestros proyectos y de forma sencilla y eficaz.

¿Cómo actualizar mi Instalador de Laravel?

Podemos actualizar el instalador de Laravel ejecutando el siguiente comando:

composer global require laravel/installer:^5.6

Este comando actualizará automáticamente la versión actual del instalador de Laravel a 5.6 o superior.

Puedes encontrar más información acerca del instalador de laravel en la documentación oficial de Laravel, bajo la sección de Prólogo -> Guía de actualización.

¿Cómo inicializar nuestro nuevo proyecto?

Ahora que hemos actualizado el instalador de Laravel a su versión más reciente. Basta con ejecutar el siguiente comando:

laravel new novedades-laravel-11

El comando desplegará para nosotros una serie de opciones de instalación para nuestro proyecto Laravel.

  _                               _
 | |                             | |
 | |     __ _ _ __ __ ___   _____| |
 | |    / _` | '__/ _` \ \ / / _ \ |
 | |___| (_| | | | (_| |\ V /  __/ |
 |______\__,_|_|  \__,_| \_/ \___|_|
 
 
┌ Would you like to install a starter kit? ────────────────────┐
│ › ● No starter kit                                           │
│   ○ Laravel Breeze                                           │
│   ○ Laravel Jetstream                                        │
└──────────────────────────────────────────────────────────────┘

Podemos elegir nuestro «starter kit», el cual puede ser Breeze, Jetstream o ninguno, que es la opción por defecto, y la cual seleccionaremos para este proyecto.

┌ Which testing framework do you prefer? ───────────────────┐
│   ○ Pest                                                  │             
│ › ● PHPUnit                                               │                                       
└───────────────────────────────────────────────────────────┘

Laravel nos ofrece Pest y PHPUnit como opciones de Framework de pruebas. Pest es la opción por defecto, pero en esta lección seleccionaremos PHPUnit, el cual hemos utilizado de manera extensa en nuestros cursos de PHP y Laravel.

┌ Would you like to initialize a Git respository───────────────┐
│ ● Yes / ○ No                                                 │
└──────────────────────────────────────────────────────────────┘

Seguidamente, Laravel te permite inicializar un nuevo repositorio de git para tu proyecto si así lo deseas.

Aprende más sobre git en nuestro Curso de git y GitHub.

┌ Which database will your application use? ───────────────────┐
│   ● MySQL                                                    │
│   ○ MariaDB                                                  │
│   ○ PostgreSQL                                               │
│ › ○ SQLite                                                   │
│   ○ SQL Server                                               │
└──────────────────────────────────────────────────────────────┘

Una vez que se haya realizado con éxito la instalación de los paquetes, procedemos a seleccionar el motor de base de datos queremos usar. También podremos elegir si queremos ejecutar las migraciones por defecto.

┌ Default database updated. Would you like to run the default database migrations? ───────────────────────────┐
│ ● Yes / ○ No                                                                                                │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Recuerda inicializar tu herramienta para administrar bases de datos antes de realizar el paso anterior.

Si no es el caso, siempre puedes ejecutar las migraciones manualmente. Ahora volvamos al directorio del proyecto y ejecutaremos php artisan migrate:

WARN The database 'novedades-laravel-11' does not exist on the 'mysql' connection
┌ Would you to create it? ───────────────────────────┐
│ ● Yes / ○ No                                       │
└────────────────────────────────────────────────────┘

El prompt nos preguntará si deseamos crear una nueva conexión ‘mysql’. Indicaremos que sí para crear la base de datos

Así finalmente tenemos nuestro proyecto inicializado.

Proyecto en Laravel 11

Como sabes, Laravel 11 no incluye por defecto rutas para API, en la lección de Configuración de rutas en Laravel 11 aprendimos cómo podemos agregarlas manualmente en el archivo bootstrap/app.php  usando los argumentos api y apiPrefix.

Pero si queremos recrear la configuración que traía Laravel 10 anteriormente, incluyendo el uso del componente Laravel Sanctum que permite obtener una autenticación bastante simple para las API, podemos regresar a la consola y desde el directorio de nuestro proyecto ejecutar el comando:

php artisan install:api

Al ejecutarse, este comando adicionalmente también incluye en nuestro proyecto el archivo para crear la tabla de tokens.

Seguidamente podremos visualizar la opción de que nos permite efectuar una nueva migración de la base de datos, esta nos indica que debemos agregar el trait \Laravel\Sanctum\HasApiTokens a nuestro modelo de Usuarios:

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel Sanctum\HasApiTokens;

class User extends Authenticatable
{
use HasFactory, Notifiable, HasApiTokens;

¿Cómo instalar las opciones de Broadcasting?

La opción de Broadcasting ya no está presente por defecto en Laravel 11 como en versiones anteriores, pero puede ser instalada desde la consola:

php artisan install:broadcasting

Además, al ejecutar este comando el Framework nos ofrece la opción de instalar el nuevo componente Laravel Reverb:

┌ Would you like to install and build the Node dependencies required for broadcasting? ───────────────────┐
│ ● Yes / ○ No                                                                                            │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Con esto permitimos instalar y construir las dependencias de Node que se requieren para broadcasting.

Instalación de un nuevo proyecto con Composer

Composer es otra opción muy sencilla con la que podemos instalar un nuevo proyecto. Tal como explicamos anteriormente en la Instalación de Laravel 10, solo debemos ejecutar el siguiente comando:

composer create-project laravel/laravel novedades-laravel-11

Pero de esta forma Laravel va a tomar las opciones por defecto, ya no tendremos opciones interactivas de configuración. Sin embargo, aún podemos modificar directamente la configuración desde los archivos de nuestro proyecto. Por ejemplo una de estas opciones por defecto, es el uso de que la base de datos  sqlite por parte del Framework, pero podemos modificarla en el archivo de entorno .env estableciendo mysql como el gestor de base de datos, descomentando las opciones y agregando el nombre correspondiente a la base de datos:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=novedades_laravel_11
DB_USERNAME=root
DB_PASSWORD=

No olvides realizar este cambio en el archivo .env.example sin colocar claves de producción en este archivo de entorno.

Para evitar compartir claves y tokens privados por error debemos excluir .env del repositorio de git el archivo .gitignore.

Conclusión

La idea detrás de esta nueva versión de Laravel es tener una estructura de archivos mucho más compacta, pero tal como hemos demostrado, si requieres instalar funcionalidades adicionales puedes lograrlo fácilmente a través de los comandos Artisan. Sin embargo hay temas en los cuales debemos profundizar como lo son los starter kit BreezeJetstream y las nuevas actualizaciones que incluye Laravel Reverb, todo esto será desarrollado en futuras lecciones.

Únete a nuestro listado de correos para estar al tanto de más lecciones:

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Lección anterior Programación de tareas (Schedule) en Laravel 11