vendor/doctrine/doctrine-migrations-bundle/src/EventListener/SchemaFilterListener.php line 44

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Doctrine\Bundle\MigrationsBundle\EventListener;
  4. use Doctrine\DBAL\Schema\AbstractAsset;
  5. use Doctrine\ORM\Tools\Console\Command\SchemaTool\UpdateCommand;
  6. use Doctrine\ORM\Tools\Console\Command\ValidateSchemaCommand;
  7. use Symfony\Component\Console\Event\ConsoleCommandEvent;
  8. /**
  9.  * Acts as a schema filter that hides the migration metadata table except
  10.  * when the execution context is that of command inside the migrations
  11.  * namespace.
  12.  */
  13. final class SchemaFilterListener
  14. {
  15.     /** @var string */
  16.     private $configurationTableName;
  17.     public function __construct(string $configurationTableName)
  18.     {
  19.         $this->configurationTableName $configurationTableName;
  20.     }
  21.     /** @var bool */
  22.     private $enabled false;
  23.     /** @param AbstractAsset|string $asset */
  24.     public function __invoke($asset): bool
  25.     {
  26.         if (! $this->enabled) {
  27.             return true;
  28.         }
  29.         if ($asset instanceof AbstractAsset) {
  30.             $asset $asset->getName();
  31.         }
  32.         return $asset !== $this->configurationTableName;
  33.     }
  34.     public function onConsoleCommand(ConsoleCommandEvent $event): void
  35.     {
  36.         $command $event->getCommand();
  37.         if (! $command instanceof ValidateSchemaCommand && ! $command instanceof UpdateCommand) {
  38.             return;
  39.         }
  40.         $this->enabled true;
  41.     }
  42. }