@@ -629,63 +629,62 @@ Symfony provides the following env var processors:
629629 .. code-block :: bash
630630
631631 # .env
632- MONGODB_URL= " mongodb ://db_user:[email protected] :27017 /db_name" 632+ DATABASE_URL= " postgresql ://db_user:[email protected] :5432 /db_name" 633633
634634 .. configuration-block ::
635635
636636 .. code-block :: yaml
637637
638- # config/packages/mongodb .yaml
639- mongo_db_bundle :
640- clients :
641- default :
642- hosts :
643- - { host: '%env(string:key:host:url:MONGODB_URL)%', port: '%env(int:key:port:url:MONGODB_URL)%' }
644- username : ' %env(string:key:user :url:MONGODB_URL )%'
645- password : ' %env(string :key:pass :url:MONGODB_URL )%'
646- connections :
647- default :
648- database_name : ' %env(key:path:url:MONGODB_URL )%'
638+ # config/services .yaml
639+ services :
640+ # ...
641+
642+ some_service :
643+ arguments :
644+ $host : ' %env(string:key:host :url:DATABASE_URL )%'
645+ $port : ' %env(int :key:port :url:DATABASE_URL )%'
646+ $username : ' %env(string:key:user:url:DATABASE_URL)% '
647+ $password : ' %env(string:key:pass:url:DATABASE_URL)% '
648+ $ database_name : ' %env(key:path:url:DATABASE_URL )%'
649649
650650 .. code-block :: xml
651651
652- <!-- config/packages/mongodb .xml -->
652+ <!-- config/services .xml -->
653653 <?xml version =" 1.0" encoding =" UTF-8" ?>
654654 <container xmlns =" http://symfony.com/schema/dic/services"
655655 xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
656656 xsi : schemaLocation =" http://symfony.com/schema/dic/services
657- https://symfony.com/schema/dic/services/services-1.0.xsd" >
658-
659- <mongodb : config >
660- <mongodb : client name =" default" username =" %env(string:key:user:url:MONGODB_URL)%" password =" %env(string:key:pass:url:MONGODB_URL)%" >
661- <mongodb : host host =" %env(string:key:host:url:MONGODB_URL)%" port =" %env(int:key:port:url:MONGODB_URL)%" />
662- </mongodb : client >
663- <mongodb : connections name =" default" database_name =" %env(key:path:url:MONGODB_URL)%" />
664- </mongodb : config >
657+ https://symfony.com/schema/dic/services/services-1.0.xsd"
658+ >
659+ <services >
660+ <!-- ... -->
661+
662+ <service id =" some_service" >
663+ <argument key =" $host" >%env(string:key:host:url:DATABASE_URL)%</argument >
664+ <argument key =" $port" >%env(int:key:port:url:DATABASE_URL)%</argument >
665+ <argument key =" $username" >%env(string:key:user:url:DATABASE_URL)%</argument >
666+ <argument key =" $password" >%env(string:key:pass:url:DATABASE_URL)%</argument >
667+ <argument key =" $database_name" >%env(key:path:url:DATABASE_URL)%</argument >
668+ </service >
669+ </services >
665670 </container >
666671
667672 .. code-block :: php
668673
669- // config/packages/mongodb.php
670- $container->loadFromExtension('mongodb', [
671- 'clients' => [
672- 'default' => [
673- 'hosts' => [
674- [
675- 'host' => '%env(string:key:host:url:MONGODB_URL)%',
676- 'port' => '%env(int:key:port:url:MONGODB_URL)%',
677- ],
678- ],
679- 'username' => '%env(string:key:user:url:MONGODB_URL)%',
680- 'password' => '%env(string:key:pass:url:MONGODB_URL)%',
681- ],
682- ],
683- 'connections' => [
684- 'default' => [
685- 'database_name' => '%env(key:path:url:MONGODB_URL)%',
686- ],
687- ],
688- ]);
674+ // config/services.php
675+ namespace Symfony\C omponent\D ependencyInjection\L oader\C onfigurator;
676+
677+ return function(ContainerConfigurator $container): void {
678+ // ...
679+
680+ $services->set(SomeService::class)
681+ ->arg('$host', '%env(string:key: host:url: DATABASE_URL)%')
682+ ->arg('$port', '%env(int:key: port:url: DATABASE_URL)%')
683+ ->arg('$username', '%env(string:key: user:url: DATABASE_URL)%')
684+ ->arg('$password', '%env(string:key: pass:url: DATABASE_URL)%')
685+ ->arg('$database_name', '%env(key:path: url:DATABASE_URL)%')
686+ ;
687+ };
689688
690689 .. warning ::
691690
@@ -699,44 +698,53 @@ Symfony provides the following env var processors:
699698 .. code-block :: bash
700699
701700 # .env
702- MONGODB_URL= " mongodb ://db_user:[email protected] :27017 /db_name?timeout=3000 " 701+ DATABASE_URL= " postgresql ://db_user:[email protected] :5432 /db_name?serverVersion=12.19&charset=utf8 " 703702
704703 .. configuration-block ::
705704
706705 .. code-block :: yaml
707706
708- # config/packages/mongodb.yaml
709- mongo_db_bundle :
710- clients :
711- default :
712- # ...
713- connectTimeoutMS : ' %env(int:key:timeout:query_string:MONGODB_URL)%'
707+ # config/services.yaml
708+ services :
709+ # ...
710+
711+ some_service :
712+ arguments :
713+ $serverVersion : ' %env(string:key:serverVersion:query_string:DATABASE_URL)%'
714+ $charset : ' %env(string:key:charset:query_string:DATABASE_URL)%'
714715
715716 .. code-block :: xml
716717
717- <!-- config/packages/mongodb .xml -->
718+ <!-- config/services .xml -->
718719 <?xml version =" 1.0" encoding =" UTF-8" ?>
719720 <container xmlns =" http://symfony.com/schema/dic/services"
720721 xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
721722 xsi : schemaLocation =" http://symfony.com/schema/dic/services
722- https://symfony.com/schema/dic/services/services-1.0.xsd" >
723+ https://symfony.com/schema/dic/services/services-1.0.xsd"
724+ >
725+ <services >
726+ <!-- ... -->
723727
724- <mongodb : config >
725- <mongodb : client name =" default" connectTimeoutMS =" %env(int:key:timeout:query_string:MONGODB_URL)%" />
726- </mongodb : config >
728+ <service id =" some_service" >
729+ <argument key =" $serverVersion" >%env(string:key:serverVersion:query_string:DATABASE_URL)%</argument >
730+ <argument key =" $charset" >%env(string:key:charset:query_string:DATABASE_URL)%</argument >
731+ </service >
732+ </services >
727733 </container >
728734
729735 .. code-block :: php
730736
731- // config/packages/mongodb.php
732- $container->loadFromExtension('mongodb', [
733- 'clients' => [
734- 'default' => [
735- // ...
736- 'connectTimeoutMS' => '%env(int:key:timeout:query_string:MONGODB_URL)%',
737- ],
738- ],
739- ]);
737+ // config/services.php
738+ namespace Symfony\C omponent\D ependencyInjection\L oader\C onfigurator;
739+
740+ return function(ContainerConfigurator $container): void {
741+ // ...
742+
743+ $services->set(SomeService::class)
744+ ->arg('$serverVersion', '%env(string:key: serverVersion:query_string: DATABASE_URL)%')
745+ ->arg('$charset', '%env(int:string: charset:query_string: DATABASE_URL)%')
746+ ;
747+ };
740748
741749``env(enum:FooEnum:BAR) ``
742750 Tries to convert an environment variable to an actual ``\BackedEnum `` value.
0 commit comments