Convert config/secrets.xml to .php

This commit is contained in:
Jérôme TAMARELLE 2020-06-11 10:30:02 +02:00
parent 8df6380fc7
commit 6ec97116a3
3 changed files with 36 additions and 25 deletions

View File

@ -375,7 +375,7 @@ class FrameworkExtension extends Extension
$this->registerRouterConfiguration($config['router'], $container, $loader, $config['translator']['enabled_locales'] ?? []);
$this->registerAnnotationsConfiguration($config['annotations'], $container, $loader);
$this->registerPropertyAccessConfiguration($config['property_access'], $container, $loader);
$this->registerSecretsConfiguration($config['secrets'], $container, $loader);
$this->registerSecretsConfiguration($config['secrets'], $container, $phpLoader);
if ($this->isConfigEnabled($container, $config['serializer'])) {
if (!class_exists('Symfony\Component\Serializer\Serializer')) {
@ -1399,7 +1399,7 @@ class FrameworkExtension extends Extension
;
}
private function registerSecretsConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader)
private function registerSecretsConfiguration(array $config, ContainerBuilder $container, PhpFileLoader $loader)
{
if (!$this->isConfigEnabled($container, $config)) {
$container->removeDefinition('console.command.secrets_set');
@ -1412,7 +1412,7 @@ class FrameworkExtension extends Extension
return;
}
$loader->load('secrets.xml');
$loader->load('secrets.php');
$container->getDefinition('secrets.vault')->replaceArgument(0, $config['vault_directory']);

View File

@ -0,0 +1,33 @@
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
use Symfony\Bundle\FrameworkBundle\Secrets\DotenvVault;
use Symfony\Bundle\FrameworkBundle\Secrets\SodiumVault;
return static function (ContainerConfigurator $container) {
$container->services()
->set('secrets.vault', SodiumVault::class)
->args([
abstract_arg('Secret dir, set in FrameworkExtension'),
service('secrets.decryption_key')->ignoreOnInvalid(),
])
->tag('container.env_var_loader')
->set('secrets.decryption_key')
->parent('container.env')
->args([abstract_arg('Decryption env var, set in FrameworkExtension')])
->set('secrets.local_vault', DotenvVault::class)
->args([[abstract_arg('.env file path, set in FrameworkExtension')]])
;
};

View File

@ -1,22 +0,0 @@
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="secrets.vault" class="Symfony\Bundle\FrameworkBundle\Secrets\SodiumVault">
<tag name="container.env_var_loader" />
<argument />
<argument type="service" id="secrets.decryption_key" on-invalid="ignore" />
</service>
<service id="secrets.decryption_key" parent="container.env">
<argument /><!-- the name of the env var to read -->
</service>
<service id="secrets.local_vault" class="Symfony\Bundle\FrameworkBundle\Secrets\DotenvVault">
<argument />
</service>
</services>
</container>