Kapitola 14 z 15
CLI a cron.
Stejné služby aplikace používejte z explicitně registrovaných příkazů a plánujte je systémovým cronem.
Vlastní command
Command implementuje CommandInterface, přijímá argumenty a vrací procesní exit code. Třída se vytvoří až při spuštění v samostatném Command scope.
ImportProductsCommand.php
<?php
use Lemonade\Framework\Cli\CommandInterface;
final class ImportProductsCommand implements CommandInterface
{
public function name(): string { return 'products:import'; }
public function description(): string { return 'Import products.'; }
public function run(array $args): int
{
// Run the application operation and return a process exit code.
return 0;
}
}Pro vstup a výstup lze injektovat CommandInput, CommandOutput a CommandContext.
Registrace a plánování
Command registrujte jménem, třídou a popisem v Commands.yaml. Spouštějte jej přes vendor/bin/lemonade; plánování zajišťuje cron nebo supervisor.
app/Config/Commands.yaml
module: commands
config:
commands:
- name: products:import
class: App\Console\ImportProductsCommand
description: Import products from the configured source.
# cron: */15 * * * * cd /var/www/app && vendor/bin/lemonade products:importLemonade neposkytuje vlastní scheduler. Frameworkové příkazy pokrývají například migrace, queue workery a generování sitemap.