Skip to content

Commit

Permalink
SymfonyBundle: add support for printer configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
JanTvrdik committed Jun 14, 2022
1 parent a2400e4 commit c1013ff
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@ public function getConfigTreeBuilder()
->isRequired()
->cannotBeEmpty()
->end()
->enumNode('printer')
->values(['console', 'psrLog'])
->defaultValue('console')
->cannotBeEmpty()
->end()
->scalarNode('diff_generator')
->defaultValue('doctrine')
->end()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,12 @@ class NextrasMigrationsExtension extends Extension
'pgsql' => 'Nextras\Migrations\Drivers\PgSqlDriver',
];

/** @var array */
protected $printers = [
'console' => 'Nextras\Migrations\Printers\Console',
'psrLog' => 'Nextras\Migrations\Bridges\PsrLog\PsrLogPrinter',
];


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

$printerAlias = $config['printer'];
$printerDefinition = new Definition($this->printers[$printerAlias]);
$printerDefinition->setAutowired(TRUE);

$container->addDefinitions([
'nextras_migrations.dbal' => $dbalDefinition,
'nextras_migrations.driver' => $driverDefinition,
'nextras_migrations.printer' => $printerDefinition,
]);

$container->addAliases([
'Nextras\Migrations\IDbal' => 'nextras_migrations.dbal',
'Nextras\Migrations\IDriver' => 'nextras_migrations.driver',
'Nextras\Migrations\IPrinter' => 'nextras_migrations.printer',
]);

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

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

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

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

$container->addDefinitions([
Expand Down

0 comments on commit c1013ff

Please sign in to comment.