OrphanRecordsCommand extends Command
Finds (and fixes) all records that have an invalid / deleted page ID
Attributes
- #[AsCommand]
- 'cleanup:orphanrecords'
- 'Find and delete records that have lost their connection with the page tree.'
Table of Contents
Methods
- __construct() : mixed
- configure() : mixed
- Configure the command by defining the name, options and arguments
- deleteRecords() : void
- Deletes records via DataHandler
- execute() : int
- Executes the command to find records not attached to the pagetree and permanently delete these records
- findAllConnectedRecordsInPage() : array<string|int, mixed>
- Recursive traversal of page tree to fetch all records marked as "deleted", via option $GLOBALS[TCA][$tableName][ctrl][delete] This also takes deleted versioned records into account.
Methods
__construct()
public
__construct(ConnectionPool $connectionPool) : mixed
Parameters
- $connectionPool : ConnectionPool
configure()
Configure the command by defining the name, options and arguments
public
configure() : mixed
deleteRecords()
Deletes records via DataHandler
protected
deleteRecords(array<string|int, mixed> $orphanedRecords, bool $dryRun, SymfonyStyle $io) : void
Parameters
- $orphanedRecords : array<string|int, mixed>
-
two level array with tables and uids
- $dryRun : bool
-
check if the records should NOT be deleted (use --dry-run to avoid)
- $io : SymfonyStyle
execute()
Executes the command to find records not attached to the pagetree and permanently delete these records
protected
execute(InputInterface $input, OutputInterface $output) : int
Parameters
- $input : InputInterface
- $output : OutputInterface
Return values
intfindAllConnectedRecordsInPage()
Recursive traversal of page tree to fetch all records marked as "deleted", via option $GLOBALS[TCA][$tableName][ctrl][delete] This also takes deleted versioned records into account.
protected
findAllConnectedRecordsInPage(int $pageId, int $depth[, array<string|int, mixed> $allRecords = [] ]) : array<string|int, mixed>
Parameters
- $pageId : int
-
the uid of the pages record (can also be 0)
- $depth : int
-
The current depth of levels to go down
- $allRecords : array<string|int, mixed> = []
-
the records that are already marked as deleted (used when going recursive)
Return values
array<string|int, mixed> —the modified $deletedRecords array