Leitfaden
CLI
Befehle, Registrierung in YAML und Übergabe längerer Arbeit an die Queue.
Command erstellen
Ein Command implementiert CommandInterface mit name(), description() und run(array $args): int. Halte die Command-Klasse auf die Orchestrierung einer konkreten Aufgabe beschränkt.
<?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;
}
}Command registrieren und ausführen
Registriere Command-Klassen in app/Config/Commands.yaml. Verwende in der öffentlichen Dokumentation den einheitlichen Einstiegspunkt vendor/bin/lemonade, zum Beispiel vendor/bin/lemonade about.
module: commands
config:
commands:
- App\Console\AboutCommandCLI-Aufgaben und Queue
Verwende Commands für geplante oder manuell ausgelöste Arbeit. Übergib längere Folgearbeit als Queue Message und lasse sie von einem CLI-Worker abschließen.
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));
}
}