Laravel Prompts, Construye una Aplicación de Línea de Comandos con Buena Experiencia de Usuario.

Laravel Prompts, Construye una Aplicación de Línea de Comandos con Buena Experiencia de Usuario.

Crea aplicaciones de forma amigable para construir aplicaciones de línea de comandos en tus aplicaciones PHP o usando Laravel.

Laravel Prompts fue lanzado hace unas semanas en la LaraconUS 2023. Es un paquete PHP que nos ofrece una forma amigable de construir aplicaciones de línea de comandos. Podemos usarlo junto con los comandos Artisan que nos provee Laravel.

Soporta macOS, Linux y Windows usando WSL.

Tenemos los siguientes componentes:

Text

Con esta función podemos solicitar que el usuario ingrese en un campo de texto.

1$name = text(
2 label: 'Ingrese su nombre',
3 placeholder: 'Gokú',
4 required: true
5);

También podemos añadirle validaciones.

1$email = text(
2 label: 'Ingrese su email',
3 placeholder: 'goku@dbz.com',
4 required: true,
5 validate: fn (string $value) => match (true) {
6 !preg_match("/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/", $value) => 'EL email es inválido',
7 default => null
8 }
9);

Password

Con esta función podemos solicitar que el usuario ingrese un texto secreto.

1$password = password(
2 label: 'Ingrese su password',
3 required: true,
4)

Confirm

Con esta función podemos solicitar que el usuario confirme una acción.

1$isAdmin = confirm(
2 label: '¿Es Administrador?',
3);

Select

Con esta función podemos solicitar que el usuario seleccione una opción entre varias.

1$maritalStatus = select(
2 label: '¿Estado Civil?',
3 options: [
4 'Soltero',
5 'Casado',
6 'Divorciado',
7 'Viudo'
8 ]
9);

Multiselect

Con esta función podemos solicitar que el usuario seleccione una o más opciones entre varias.

1$interests = multiselect(
2 label: '¿Cuáles son sus intereses?',
3 options: [
4 'Deportes',
5 'Farándula',
6 'Comida',
7 'Viajes',
8 'Política'
9 ]
10);

Suggest

Con esta opción podemos sugerir algunas opciones al usuario, pero si desea puede ingresar una nueva.

1$hobbies = suggest(
2 label: '¿Cuáles son sus hobbies?',
3 options: [
4 'Jugar videojuegos',
5 'Ir al cine',
6 'Jugar fútbol'
7 ]
8);

Search

Con esta opción podemos mostrarle al usuario las opciones de acuerdo a los que escribe.

1$country = search(
2 label: '¿Cuál es su país?',
3 options: fn(string $value) =>
4 Country::where('name', 'like', "%{$value}%")
5 ->pluck('name', 'id')
6 ->all()
7);

Como pueden ver con estos componentes podemos construir nuestras aplicaciones para la terminal con una mejor experiencia de usuario. También podemos usarlo en aplicaciones PHP que no usen Laravel.

Si desean conocer más pueden visitar la documentación.

Versión Video

Repositorio en Github

Regístrate para que cada semana aprendas algo nuevo

Tendrás tutoriales, tips, conceptos y puedas convertirte en un artesano de todo el ecosistema Laravel.