diff --git a/configuration/env_var_processors.rst b/configuration/env_var_processors.rst index ecf5d37cc05..336b9b02a42 100644 --- a/configuration/env_var_processors.rst +++ b/configuration/env_var_processors.rst @@ -633,63 +633,62 @@ Symfony provides the following env var processors: .. code-block:: bash # .env - MONGODB_URL="mongodb://db_user:db_password@127.0.0.1:27017/db_name" + DATABASE_URL="postgresql://db_user:db_password@127.0.0.1:5432/db_name" .. configuration-block:: .. code-block:: yaml - # config/packages/mongodb.yaml - mongo_db_bundle: - clients: - default: - hosts: - - { host: '%env(string:key:host:url:MONGODB_URL)%', port: '%env(int:key:port:url:MONGODB_URL)%' } - username: '%env(string:key:user:url:MONGODB_URL)%' - password: '%env(string:key:pass:url:MONGODB_URL)%' - connections: - default: - database_name: '%env(key:path:url:MONGODB_URL)%' + # config/services.yaml + services: + # ... + + some_service: + arguments: + $host: '%env(string:key:host:url:DATABASE_URL)%' + $port: '%env(int:key:port:url:DATABASE_URL)%' + $username: '%env(string:key:user:url:DATABASE_URL)%' + $password: '%env(string:key:pass:url:DATABASE_URL)%' + $database_name: '%env(key:path:url:DATABASE_URL)%' .. code-block:: xml - + - - - - - - - + https://symfony.com/schema/dic/services/services-1.0.xsd" + > + + + + + %env(string:key:host:url:DATABASE_URL)% + %env(int:key:port:url:DATABASE_URL)% + %env(string:key:user:url:DATABASE_URL)% + %env(string:key:pass:url:DATABASE_URL)% + %env(key:path:url:DATABASE_URL)% + + .. code-block:: php - // config/packages/mongodb.php - $container->loadFromExtension('mongodb', [ - 'clients' => [ - 'default' => [ - 'hosts' => [ - [ - 'host' => '%env(string:key:host:url:MONGODB_URL)%', - 'port' => '%env(int:key:port:url:MONGODB_URL)%', - ], - ], - 'username' => '%env(string:key:user:url:MONGODB_URL)%', - 'password' => '%env(string:key:pass:url:MONGODB_URL)%', - ], - ], - 'connections' => [ - 'default' => [ - 'database_name' => '%env(key:path:url:MONGODB_URL)%', - ], - ], - ]); + // config/services.php + namespace Symfony\Component\DependencyInjection\Loader\Configurator; + + return function(ContainerConfigurator $container): void { + // ... + + $services->set(SomeService::class) + ->arg('$host', '%env(string:key:host:url:DATABASE_URL)%') + ->arg('$port', '%env(int:key:port:url:DATABASE_URL)%') + ->arg('$username', '%env(string:key:user:url:DATABASE_URL)%') + ->arg('$password', '%env(string:key:pass:url:DATABASE_URL)%') + ->arg('$database_name', '%env(key:path:url:DATABASE_URL)%') + ; + }; .. warning:: @@ -703,44 +702,53 @@ Symfony provides the following env var processors: .. code-block:: bash # .env - MONGODB_URL="mongodb://db_user:db_password@127.0.0.1:27017/db_name?timeout=3000" + DATABASE_URL="postgresql://db_user:db_password@127.0.0.1:5432/db_name?serverVersion=12.19&charset=utf8" .. configuration-block:: .. code-block:: yaml - # config/packages/mongodb.yaml - mongo_db_bundle: - clients: - default: - # ... - connectTimeoutMS: '%env(int:key:timeout:query_string:MONGODB_URL)%' + # config/services.yaml + services: + # ... + + some_service: + arguments: + $serverVersion: '%env(string:key:serverVersion:query_string:DATABASE_URL)%' + $charset: '%env(string:key:charset:query_string:DATABASE_URL)%' .. code-block:: xml - + + https://symfony.com/schema/dic/services/services-1.0.xsd" + > + + - - - + + %env(string:key:serverVersion:query_string:DATABASE_URL)% + %env(string:key:charset:query_string:DATABASE_URL)% + + .. code-block:: php - // config/packages/mongodb.php - $container->loadFromExtension('mongodb', [ - 'clients' => [ - 'default' => [ - // ... - 'connectTimeoutMS' => '%env(int:key:timeout:query_string:MONGODB_URL)%', - ], - ], - ]); + // config/services.php + namespace Symfony\Component\DependencyInjection\Loader\Configurator; + + return function(ContainerConfigurator $container): void { + // ... + + $services->set(SomeService::class) + ->arg('$serverVersion', '%env(string:key:serverVersion:query_string:DATABASE_URL)%') + ->arg('$charset', '%env(int:string:charset:query_string:DATABASE_URL)%') + ; + }; ``env(enum:FooEnum:BAR)`` Tries to convert an environment variable to an actual ``\BackedEnum`` value.