Introduction
Dans ce tutoriel, vous allez construire une application Laravel avec des commandes artisan personnalisées en utilisantrevolution/laravel-console-starter.
Avantages d’utiliser ce kit de démarrage :
- Mise en place rapide — Vous pouvez commencer immédiatement le développement d’applications console sans configuration complexe
- Écosystème Laravel — Vous pouvez utiliser les fonctionnalités riches de Laravel comme la planification de tâches, la base de données et les notifications
- Commandes Artisan — Vous pouvez facilement créer et gérer vos propres commandes grâce au puissant système Artisan de Laravel
- Facilité de test — Vous pouvez écrire des tests pour vos commandes avec le framework de test de Laravel
Prérequis
Installez les logiciels suivants.- PHP
^8.3 - Composer (https://getcomposer.org/)
- Laravel Installer (
composer global require laravel/installer)
Configuration du projet
Créer un nouveau projet
my-app est créé et la structure de base de l’application console est mise en place.Lors de l’installation, les actions suivantes sont exécutées automatiquement :- Génération du fichier
.envdepuis.env.example - Configuration de la clé applicative avec
php artisan key:generate
Vérifier la configuration de l'environnement
MAIL_MAILER=log).Si un envoi réel d’e-mails est nécessaire, configurez un service comme Mailgun, Postmark ou SES dans le fichier .env.Création de commandes console
Générer une commande
make:command.YourCommandName— Nom de la classe de la commande à créer (ex :SendDailyReport)your:command— Nom d’invocation de la commande (ex :report:send-daily)
app/Console/Commands/YourCommandName.php est généré.Implémenter la commande
$signature définit le nom d’invocation de la commande, et la logique est écrite dans la méthode handle().Exécuter la commande
storage/logs/laravel.log et affiché dans la console.Planification de tâches avec GitHub Actions
En utilisant GitHub Actions, vous pouvez exécuter des commandes de manière périodique sans cron sur le serveur.Vérifier le fichier de workflow
.github/workflows/cron.yml préconfiguré.Modifier la commande
php artisan inspire par votre propre commande.Ajuster la planification
cron pour définir la fréquence d’exécution.Gérer les informations sensibles avec des secrets
Fonctionnalités de notification
Vous pouvez notifier les résultats d’exécution ou les erreurs de commande par e-mail, Slack, etc.Créer une classe de notification
app/Notifications/TaskCompleted.php est généré.Configurer le canal de notification
Envoyer une notification depuis une commande
Exemples d’applications concrètes
Exemple 1 : Surveillance de disponibilité de sites web et alertes Slack
Une commande qui vérifie si des sites web sont en ligne et envoie une alerte à Slack en cas de problème détecté.Installer le canal de notification Slack
Créer la commande et la notification
Configurer Slack
.env.config/services.php.Implémenter la notification
app/Notifications/WebsiteDown.php.Implémenter la commande
app/Console/Commands/MonitorWebsites.php.Configurer la planification via GitHub Actions
.github/workflows/cron.yml.Exemple 2 : Mise à jour du portefeuille crypto et notification Discord
Une commande qui récupère les prix des crypto-actifs depuis l’API CoinGecko et envoie les mises à jour via un webhook Discord.Installer le canal de notification Discord
Créer la commande et la notification
Configurer Discord
.env.config/services.php.Implémenter et exécuter la commande
Exemple 3 : Scraping de contenu web et notification par e-mail
Une commande qui scrappe le contenu d’un site web et envoie le résultat par e-mail.Créer la commande et la notification
Configurer l'e-mail
.env.Implémenter et exécuter la commande
Étapes suivantes
Vous avez maintenant appris les bases de la construction d’une application console Laravel avecrevolution/laravel-console-starter.
Pour aller plus loin :
- Explorer la documentation Laravel — Consultez la documentation officielle Laravel pour découvrir des fonctionnalités qui enrichiront votre application console
- Implémenter des tests — Créez des tests pour vos commandes avec le framework de test de Laravel afin d’assurer leur fiabilité
- Envisager le développement de packages — Si vous créez des commandes similaires dans plusieurs projets, envisagez de les publier comme package Laravel réutilisable
- Se tenir à jour — Suivez Laravel News et le blog officiel pour rester au fait des bonnes pratiques