Skip to main content

Introducción

En este tutorial construirás una aplicación Laravel con comandos artisan personalizados usando revolution/laravel-console-starter. Ventajas de usar este starter kit:
  • Configuración rápida: puedes empezar a desarrollar aplicaciones de consola de inmediato, sin configuraciones complejas.
  • Ecosistema Laravel: puedes utilizar la programación de tareas, la base de datos, las notificaciones y todas las funcionalidades de Laravel.
  • Comandos Artisan: crea y gestiona fácilmente comandos personalizados con el potente sistema Artisan de Laravel.
  • Facilidad para testear: puedes escribir tests para tus comandos con el framework de testing de Laravel.

Requisitos previos

Instala el siguiente software.

Configuración del proyecto

1

Crea un nuevo proyecto

Ejecuta en la terminal el siguiente comando.
Se crea el directorio my-app con la estructura básica de una aplicación de consola.Durante la instalación se ejecutan automáticamente:
  • Generación del archivo .env a partir de .env.example
  • Configuración de la clave de la aplicación con php artisan key:generate
Estructura principal de directorios:
2

Verifica la configuración de entorno

Por defecto el envío de correo está configurado para escribir en el log (MAIL_MAILER=log).Si necesitas enviar correos reales, configura un servicio como Mailgun, Postmark o SES en el archivo .env.

Crear comandos de consola

1

Genera el comando

Crea un nuevo comando con el comando Artisan make:command.
  • YourCommandName: nombre de la clase del comando (por ejemplo, SendDailyReport).
  • your:command: nombre de invocación del comando (por ejemplo, report:send-daily).
Se genera app/Console/Commands/YourCommandName.php.
2

Implementa el comando

Edita el archivo generado e implementa la lógica. A continuación tienes un ejemplo de comando Hello World.
En $signature defines el nombre de invocación y en el método handle() escribes la lógica.
3

Ejecuta el comando

Tras ejecutarlo, se muestra el mensaje en storage/logs/laravel.log y en la consola.

Programación de tareas con GitHub Actions

Con GitHub Actions puedes ejecutar comandos de forma periódica sin necesidad de cron en el servidor.
1

Revisa el archivo de workflow

El starter kit incluye ya configurado el archivo .github/workflows/cron.yml.
2

Cambia el comando

Sustituye php artisan inspire por tu propio comando.
Para ejecutar varios comandos:
3

Ajusta la programación

Cambia la expresión cron para configurar la frecuencia de ejecución.
4

Gestiona la información sensible con secrets

Usa GitHub repository secrets para información sensible como claves de API o contraseñas.Añade los secrets en Settings > Secrets and variables > Actions del repositorio de GitHub y referéncialos en el workflow.

Funcionalidad de notificaciones

Puedes notificar el resultado o los errores de un comando por correo, Slack, etc.
1

Crea la clase de notificación

Se genera app/Notifications/TaskCompleted.php.
2

Configura el canal de notificación

Publica los archivos de configuración necesarios.
3

Envía la notificación desde el comando

Para más detalles, consulta la documentación de notificaciones de Laravel.

Ejemplos prácticos de aplicación

Ejemplo 1: Monitorización de sitios web con alertas en Slack

Comando que comprueba si un sitio web está online y envía una alerta a Slack si se detecta un problema.
1

Instala el canal de notificación de Slack

2

Crea el comando y la notificación

3

Configura Slack

Añade la URL del webhook de Slack en .env.
Actualiza config/services.php.
4

Implementa la notificación

Edita app/Notifications/WebsiteDown.php.
5

Implementa el comando

Edita app/Console/Commands/MonitorWebsites.php.
6

Programa con GitHub Actions

Actualiza .github/workflows/cron.yml.

Ejemplo 2: Actualización de cartera de criptomonedas con notificación en Discord

Comando que obtiene los precios de criptomonedas desde la API de CoinGecko y envía la actualización mediante un webhook de Discord.
1

Instala el canal de notificación de Discord

2

Crea el comando y la notificación

3

Configura Discord

Añade la URL del webhook de Discord en .env.
Actualiza config/services.php.
4

Implementa el comando y ejecútalo

Consulta la implementación detallada en el tutorial del repositorio de GitHub.

Ejemplo 3: Scraping de contenido web y notificación por correo

Comando que hace scraping de contenido de un sitio web y envía el resultado por correo.
1

Crea el comando y la notificación

2

Configura el correo

Añade la configuración de correo en el archivo .env.
3

Implementa el comando y ejecútalo

Próximos pasos

Ya has aprendido los fundamentos para desarrollar aplicaciones de consola con Laravel usando revolution/laravel-console-starter. Para profundizar más:
  • Explora la documentación de Laravel: revisa las funcionalidades que pueden potenciar tu app de consola en la documentación oficial de Laravel.
  • Implementa pruebas: crea tests para tus comandos con el framework de testing de Laravel para asegurar su fiabilidad.
  • Considera crear paquetes: si vas a reutilizar los mismos comandos en varios proyectos, considera publicarlos como paquetes reutilizables de Laravel.
  • Mantente al día: sigue Laravel News y el blog oficial para conocer las buenas prácticas más recientes.
Última modificación el 13 de julio de 2026