Guide
CLI
Commandes, enregistrement YAML et délégation des travaux longs à la queue.
Créer une commande
Une commande implémente CommandInterface avec name(), description() et run(array $args): int. Gardez la classe de commande centrée sur l’orchestration d’une tâche précise.
<?php
declare(strict_types=1);
namespace App\Console;
use Lemonade\Framework\Cli\CommandInterface;
final class AboutCommand implements CommandInterface
{
public function name(): string
{
return 'about';
}
public function description(): string
{
return 'Display basic information about the application.';
}
public function run(array $args): int
{
unset($args);
fwrite(STDOUT, "Application is running\n");
return 0;
}
}Enregistrer et exécuter une commande
Enregistrez les classes de commande dans app/Config/Commands.yaml. Dans la documentation publique, utilisez le point d’entrée canonique vendor/bin/lemonade, par exemple vendor/bin/lemonade about.
module: commands
config:
commands:
- App\Console\AboutCommandCLI, tâches et queue
Utilisez les commandes pour le travail planifié ou déclenché par un opérateur. Déléguez les traitements plus longs sous forme de queue message et laissez un worker CLI les terminer.
use Lemonade\Framework\Queue\QueueBusInterface;
final class PublishService
{
public function __construct(
private readonly QueueBusInterface $queue,
) {}
public function publish(int $articleId): void
{
$this->queue->dispatch(new PublishArticleMessage($articleId));
}
}