diff options
-rw-r--r-- | lib/public/UserMigration/IImportSource.php | 9 | ||||
-rw-r--r-- | lib/public/UserMigration/IMigrator.php | 9 | ||||
-rw-r--r-- | lib/public/UserMigration/TMigratorBasicVersionHandling.php | 4 |
3 files changed, 14 insertions, 8 deletions
diff --git a/lib/public/UserMigration/IImportSource.php b/lib/public/UserMigration/IImportSource.php index 53680010df5..f3051b097e0 100644 --- a/lib/public/UserMigration/IImportSource.php +++ b/lib/public/UserMigration/IImportSource.php @@ -71,6 +71,15 @@ interface IImportSource { public function getMigratorVersions(): array; /** + * @return ?int Version for this migrator from the export archive. Null means migrator missing. + * + * @param class-string<IMigrator> $migrator + * + * @since 24.0.0 + */ + public function getMigratorVersion(string $migrator): ?int; + + /** * Called after import is complete * * @since 24.0.0 diff --git a/lib/public/UserMigration/IMigrator.php b/lib/public/UserMigration/IMigrator.php index 5a09bf4246b..4ff09167f5e 100644 --- a/lib/public/UserMigration/IMigrator.php +++ b/lib/public/UserMigration/IMigrator.php @@ -54,8 +54,7 @@ interface IMigrator { public function import( IUser $user, IImportSource $importSource, - OutputInterface $output, - ?int $version + OutputInterface $output ): void; /** @@ -67,13 +66,11 @@ interface IMigrator { /** * Checks whether it is able to import a version of the export format for this migrator - * - * @param ?int $version Version stored in the import source for this migrator. Null means this migrator was not listed. + * Use $importSource->getMigratorVersion(static::class) to get the version from the archive * * @since 24.0.0 */ public function canImport( - IImportSource $importSource, - ?int $version + IImportSource $importSource ): bool; } diff --git a/lib/public/UserMigration/TMigratorBasicVersionHandling.php b/lib/public/UserMigration/TMigratorBasicVersionHandling.php index 6b695ec45d9..a1d408665a6 100644 --- a/lib/public/UserMigration/TMigratorBasicVersionHandling.php +++ b/lib/public/UserMigration/TMigratorBasicVersionHandling.php @@ -45,9 +45,9 @@ trait TMigratorBasicVersionHandling { * {@inheritDoc} */ public function canImport( - IImportSource $importSource, - ?int $version + IImportSource $importSource ): bool { + $version = $importSource->getMigratorVersion(static::class); if ($version === null) { return !$this->mandatory; } |