Introducción
En este tutorial construirás una aplicación Laravel con comandos artisan personalizados usandorevolution/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.- PHP
^8.3 - Composer (https://getcomposer.org/)
- Laravel Installer (
composer global require laravel/installer)
Configuración del proyecto
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
.enva partir de.env.example - Configuración de la clave de la aplicación con
php artisan key:generate
Crear comandos de consola
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).
app/Console/Commands/YourCommandName.php.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.Programación de tareas con GitHub Actions
Con GitHub Actions puedes ejecutar comandos de forma periódica sin necesidad de cron en el servidor.Revisa el archivo de workflow
El starter kit incluye ya configurado el archivo
.github/workflows/cron.yml.Cambia el comando
Sustituye Para ejecutar varios comandos:
php artisan inspire por tu propio comando.Ajusta la programación
Cambia la expresión
cron para configurar la frecuencia de ejecución.| Expresión cron | Ejecución |
|---|---|
0 0 * * * | Todos los días a las 00:00 UTC |
0 */6 * * * | Cada 6 horas |
0 0 * * 1 | Todos los lunes a las 00:00 |
Funcionalidad de notificaciones
Puedes notificar el resultado o los errores de un comando por correo, Slack, etc.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.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.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.Próximos pasos
Ya has aprendido los fundamentos para desarrollar aplicaciones de consola con Laravel usandorevolution/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.