Symfony command
Ha szeretnénk ütemezve indítani cron-al scripteket, pl email értesítés, gdpr miatt anonymizálni régi adatokat stb, akkor symfony-ban a command-okat használhatjuk. |
|
Command -okat az Command mappában hozzuk létre. A defaultName változóban adjuk meg a nevét a parancsnak. A configure függvényben állíthathatunk be leírást a scriptünkről, hogy mit is csinál valójában. Az execute-ben lesz a kód ami lefut.<?php namespace App\Command; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ODM\MongoDB\DocumentManager as DocumentManager; class DeleteOldEntitiesCommand extends Command { private $em; private $dm; // the name of the command (the part after "bin/console") protected static $defaultName = 'app:delete-old-entities'; public function __construct(EntityManagerInterface $em, DocumentManager $dm) { parent::__construct(); $this->em = $em; $this->dm = $dm; } protected function configure() { $this ->setDescription('Delete old entities.') ->setHelp('This command delete old entities...'); } protected function execute(InputInterface $input, OutputInterface $output) { $output->writeln([ 'Start script: ' . date("Y-m-d H:i:s") '============', '', ]); ... $output->writeln([ '', 'Finish script: ' . date("Y-m-d H:i:s"), '============', '', ]); return 0; } A konzolban a következő paranccsal tudjuk elindítani a scriptünket: # php bin/console app:delete-old-entities A cron-ban vagy ütemezőben csak a fenti parancsot kell csak beraknunk. Olvasnivaló: https://symfony.com/doc/current/console.html |
2020.08.22. |
Figyelem! Az itt olvasható leírások, nem teljesek és nem biztos, hogy pontosak. Nem
frissülnek folyamatosan, ezért nem mindegyik használható az aktuális verziójú rendszerekben. Mindenki saját
felelősségére használja az itt található ötleteket. Az esetleges károkért nem vállalunk felelősséget.