Skip to content

Commit c1013ff

Browse files
committed
SymfonyBundle: add support for printer configuration
1 parent a2400e4 commit c1013ff

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

src/Bridges/SymfonyBundle/DependencyInjection/Configuration.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ public function getConfigTreeBuilder()
4141
->isRequired()
4242
->cannotBeEmpty()
4343
->end()
44+
->enumNode('printer')
45+
->values(['console', 'psrLog'])
46+
->defaultValue('console')
47+
->cannotBeEmpty()
48+
->end()
4449
->scalarNode('diff_generator')
4550
->defaultValue('doctrine')
4651
->end()

src/Bridges/SymfonyBundle/DependencyInjection/NextrasMigrationsExtension.php

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@ class NextrasMigrationsExtension extends Extension
3333
'pgsql' => 'Nextras\Migrations\Drivers\PgSqlDriver',
3434
];
3535

36+
/** @var array */
37+
protected $printers = [
38+
'console' => 'Nextras\Migrations\Printers\Console',
39+
'psrLog' => 'Nextras\Migrations\Bridges\PsrLog\PsrLogPrinter',
40+
];
41+
3642

3743
public function load(array $configs, ContainerBuilder $container)
3844
{
@@ -46,14 +52,20 @@ public function load(array $configs, ContainerBuilder $container)
4652
$driverDefinition = new Definition($this->drivers[$driverAlias]);
4753
$driverDefinition->setArgument('$dbal', $dbalDefinition);
4854

55+
$printerAlias = $config['printer'];
56+
$printerDefinition = new Definition($this->printers[$printerAlias]);
57+
$printerDefinition->setAutowired(TRUE);
58+
4959
$container->addDefinitions([
5060
'nextras_migrations.dbal' => $dbalDefinition,
5161
'nextras_migrations.driver' => $driverDefinition,
62+
'nextras_migrations.printer' => $printerDefinition,
5263
]);
5364

5465
$container->addAliases([
5566
'Nextras\Migrations\IDbal' => 'nextras_migrations.dbal',
5667
'Nextras\Migrations\IDriver' => 'nextras_migrations.driver',
68+
'Nextras\Migrations\IPrinter' => 'nextras_migrations.printer',
5769
]);
5870

5971
if ($config['diff_generator'] === 'doctrine') {
@@ -77,15 +89,15 @@ public function load(array $configs, ContainerBuilder $container)
7789
$configurationDefinition->addMethodCall('setStructureDiffGenerator', [$structureDiffGeneratorDefinition]);
7890

7991
$continueCommandDefinition = new Definition('Nextras\Migrations\Bridges\SymfonyConsole\ContinueCommand');
80-
$continueCommandDefinition->setArguments([$driverDefinition, $configurationDefinition]);
92+
$continueCommandDefinition->setArguments([$driverDefinition, $configurationDefinition, $printerDefinition]);
8193
$continueCommandDefinition->addTag('console.command');
8294

8395
$createCommandDefinition = new Definition('Nextras\Migrations\Bridges\SymfonyConsole\CreateCommand');
84-
$createCommandDefinition->setArguments([$driverDefinition, $configurationDefinition]);
96+
$createCommandDefinition->setArguments([$driverDefinition, $configurationDefinition, $printerDefinition]);
8597
$createCommandDefinition->addTag('console.command');
8698

8799
$resetCommandDefinition = new Definition('Nextras\Migrations\Bridges\SymfonyConsole\ResetCommand');
88-
$resetCommandDefinition->setArguments([$driverDefinition, $configurationDefinition]);
100+
$resetCommandDefinition->setArguments([$driverDefinition, $configurationDefinition, $printerDefinition]);
89101
$resetCommandDefinition->addTag('console.command');
90102

91103
$container->addDefinitions([

0 commit comments

Comments
 (0)