2025-01-18 14:44:31 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Wallabag\Doctrine;
|
|
|
|
|
|
|
|
use Doctrine\Migrations\AbstractMigration;
|
|
|
|
use Doctrine\Migrations\Version\MigrationFactory;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Decorates the migration factory to pass some additional information to the migration instances.
|
|
|
|
*/
|
|
|
|
class MigrationFactoryDecorator implements MigrationFactory
|
|
|
|
{
|
2025-04-05 13:54:27 +02:00
|
|
|
public function __construct(
|
2025-04-05 13:59:36 +02:00
|
|
|
private readonly MigrationFactory $migrationFactory,
|
|
|
|
private readonly string $tablePrefix,
|
|
|
|
private readonly array $defaultIgnoreOriginInstanceRules,
|
|
|
|
private readonly string $fetchingErrorMessage,
|
2025-04-05 13:54:27 +02:00
|
|
|
) {
|
2025-01-18 14:44:31 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
public function createVersion(string $migrationClassName): AbstractMigration
|
|
|
|
{
|
|
|
|
$instance = $this->migrationFactory->createVersion($migrationClassName);
|
|
|
|
|
|
|
|
if ($instance instanceof WallabagMigration) {
|
|
|
|
$instance->setTablePrefix($this->tablePrefix);
|
|
|
|
$instance->setDefaultIgnoreOriginInstanceRules($this->defaultIgnoreOriginInstanceRules);
|
|
|
|
$instance->setFetchingErrorMessage($this->fetchingErrorMessage);
|
|
|
|
}
|
|
|
|
|
|
|
|
return $instance;
|
|
|
|
}
|
|
|
|
}
|