Source of file PurgeTask.php
Size: 1,392 Bytes - Last Modified: 2021-12-23T10:34:18+00:00
/var/www/docs.ssmods.com/process/src/src/Tasks/PurgeTask.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | <?php namespace SilverStripe\Gatsby\Tasks; use Psr\Log\LoggerInterface; use SilverStripe\Control\HTTPRequest; use SilverStripe\Core\Injector\Injector; use SilverStripe\Dev\BuildTask; use SilverStripe\Gatsby\Services\Migrator; use ReflectionException; class PurgeTask extends BuildTask { /** * @var string */ private static $segment = 'purge-change-tracker'; /** * @var string */ protected $description = 'Purges records that do not belong in the change tracker for publishing'; /** * @var Migrator */ private $migrator; /** * MigrationTask constructor. * @param Migrator $service */ public function __construct(Migrator $service) { parent::__construct(); $this->migrator = $service; } /** * @param HTTPRequest $request * @throws ReflectionException */ public function run($request) { $logger = Injector::inst()->get(LoggerInterface::class); $classes = $this->migrator->getClassesToMigrate(); $logger->info('Purging ' . sizeof($classes) . ' classes'); foreach ($classes as $class) { $rows = $this->migrator->purge($class); if (!empty($rows)) { $logger->info("Purged " . count($rows) . " records from $class"); } } $this->migrator->tearDown(); } } |