Skip to content

Commit bd327a6

Browse files
committed
introduce config flag to enable/disable collector
1 parent 9d1f8d5 commit bd327a6

File tree

3 files changed

+22
-5
lines changed

3 files changed

+22
-5
lines changed

DependencyInjection/Configuration.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,10 @@ public function getConfigTreeBuilder(): TreeBuilder
147147
})
148148
->end()
149149
->end()
150+
->booleanNode('enable_profiler')
151+
->info('Use profiler to calculate and visualize migration status.')
152+
->defaultTrue()
153+
->end()
150154
->end();
151155

152156
return $treeBuilder;

DependencyInjection/DoctrineMigrationsExtension.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
namespace Doctrine\Bundle\MigrationsBundle\DependencyInjection;
66

7+
use Doctrine\Bundle\MigrationsBundle\Collector\MigrationsCollector;
78
use Doctrine\Migrations\Metadata\Storage\MetadataStorage;
89
use Doctrine\Migrations\Metadata\Storage\TableMetadataStorageConfiguration;
910
use Doctrine\Migrations\Version\MigrationFactory;
@@ -71,6 +72,10 @@ public function load(array $configs, ContainerBuilder $container): void
7172
$configurationDefinition->addMethodCall('setAllOrNothing', [$config['all_or_nothing']]);
7273
$configurationDefinition->addMethodCall('setCheckDatabasePlatform', [$config['check_database_platform']]);
7374

75+
if ($config['enable_profiler']) {
76+
$this->registerCollector($container);
77+
}
78+
7479
$diDefinition = $container->getDefinition('doctrine.migrations.dependency_factory');
7580

7681
if (! isset($config['services'][MigrationFactory::class])) {
@@ -155,6 +160,19 @@ private function getBundlePath(string $bundleName, ContainerBuilder $container):
155160
return $bundleMetadata[$bundleName]['path'];
156161
}
157162

163+
private function registerCollector(ContainerBuilder $container): void
164+
{
165+
$collectorDefinition = new Definition(MigrationsCollector::class);
166+
$collectorDefinition
167+
->addArgument(new Reference('doctrine.migrations.dependency_factory'))
168+
->addTag('data_collector', [
169+
'template' => '@DoctrineMigrations/Collector/migrations.html.twig',
170+
'id' => 'doctrine_migrations',
171+
'priority' => '249',
172+
]);
173+
$container->setDefinition('doctrine_migrations.migrations_collector', $collectorDefinition);
174+
}
175+
158176
/**
159177
* Returns the base path for the XSD files.
160178
*

Resources/config/services.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -141,11 +141,6 @@
141141
<tag name="console.command" command="doctrine:migrations:version" />
142142
</service>
143143

144-
<service id="doctrine_migrations.migrations_collector" class="Doctrine\Bundle\MigrationsBundle\Collector\MigrationsCollector">
145-
<argument type="service" id="doctrine.migrations.dependency_factory"/>
146-
<tag name="data_collector" template="@DoctrineMigrations/Collector/migrations.html.twig" id="doctrine_migrations" priority="249" />
147-
</service>
148-
149144
</services>
150145

151146
</container>

0 commit comments

Comments
 (0)