diff --git a/EventListener/SchemaFilterListener.php b/EventListener/SchemaFilterListener.php new file mode 100644 index 0000000..b88fc2b --- /dev/null +++ b/EventListener/SchemaFilterListener.php @@ -0,0 +1,51 @@ +enabled) { + return true; + } + + if ($asset instanceof AbstractAsset) { + $asset = $asset->getName(); + } + + return $asset !== (new TableMetadataStorageConfiguration())->getTableName(); + } + + public function disable(): void + { + $this->enabled = false; + } + + public function onConsoleCommand(ConsoleCommandEvent $event): void + { + $command = $event->getCommand(); + + if (! $command instanceof DoctrineCommand) { + return; + } + + $this->disable(); + } +} diff --git a/Resources/config/services.xml b/Resources/config/services.xml index cb97871..17ff210 100644 --- a/Resources/config/services.xml +++ b/Resources/config/services.xml @@ -146,6 +146,11 @@ + + + + + diff --git a/Tests/Collector/EventListener/SchemaFilterListenerTest.php b/Tests/Collector/EventListener/SchemaFilterListenerTest.php new file mode 100644 index 0000000..5a6b7f3 --- /dev/null +++ b/Tests/Collector/EventListener/SchemaFilterListenerTest.php @@ -0,0 +1,48 @@ +disable(); + + self::assertTrue($listener(new Table('doctrine_migration_versions'))); + self::assertTrue($listener(new Table('some_other_table'))); + } + + public function testItDisablesItselfWhenTheCurrentCommandIsAMigrationsCommand(): void + { + $listener = new SchemaFilterListener(); + $migrationsCommand = new class extends DoctrineCommand { + }; + + $listener->onConsoleCommand(new ConsoleCommandEvent( + $migrationsCommand, + new ArrayInput([]), + new NullOutput() + )); + + self::assertTrue($listener(new Table('doctrine_migration_versions'))); + } +} diff --git a/phpstan.neon.dist b/phpstan.neon.dist index 30c6a8a..471c221 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -3,6 +3,7 @@ parameters: phpVersion: 80200 paths: - DependencyInjection + - EventListener - Tests excludePaths: diff --git a/psalm.xml b/psalm.xml index 578e54f..32efe93 100644 --- a/psalm.xml +++ b/psalm.xml @@ -11,6 +11,7 @@ > +