@@ -537,6 +537,128 @@ Symfony provides the following env var processors:
537537
538538 The ``default `` processor was introduced in Symfony 4.3.
539539
540+ ``env(url:FOO) ``
541+ Parses an absolute URL and returns its components.
542+
543+ ..code-block ::bash
544+
545+ # .env
546+ MONGODB_URL=" mongodb://db_user:db_password@127.0.0.1:27017/db_name"
547+
548+ ..configuration-block ::
549+
550+ ..code-block ::yaml
551+
552+ # config/packages/mongodb.yaml
553+ mongo_db_bundle :
554+ clients :
555+ default :
556+ hosts :
557+ -{ host: '%env(key:host:url:MONGODB_URL)%', port: '%env(key:port:url:MONGODB_URL)%' }
558+ username :' %env(key:user:url:MONGODB_URL)%'
559+ password :' %env(key:pass:url:MONGODB_URL)%'
560+ connections :
561+ default :
562+ database_name :' %env(key:path:url:MONGODB_URL)%'
563+
564+ ..code-block ::xml
565+
566+ <!-- config/packages/mongodb.xml-->
567+ <?xml version =" 1.0" encoding =" UTF-8" ?>
568+ <container xmlns =" http://symfony.com/schema/dic/services"
569+ xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
570+ xsi : schemaLocation =" http://symfony.com/schema/dic/services
571+ http://symfony.com/schema/dic/services/services-1.0.xsd" >
572+
573+ <mongodb : config >
574+ <mongodb : client name =" default" username =" %env(key:user:url:MONGODB_URL)%" password =" %env(key:pass:url:MONGODB_URL)%" >
575+ <mongodb : host host =" %env(key:host:url:MONGODB_URL)%" port =" %env(key:port:url:MONGODB_URL)%" />
576+ </mongodb : client >
577+ <mongodb : connections name =" default" database_name =" %env(key:path:url:MONGODB_URL)%" />
578+ </mongodb : config >
579+ </container >
580+
581+ ..code-block ::php
582+
583+ // config/packages/mongodb.php
584+ $container->loadFromExtension('mongodb', [
585+ 'clients' => [
586+ 'default' => [
587+ 'hosts' => [
588+ [
589+ 'host' => '%env(key:host:url:MONGODB_URL)%',
590+ 'port' => '%env(key:port:url:MONGODB_URL)%',
591+ ],
592+ ],
593+ 'username' => '%env(key:user:url:MONGODB_URL)%',
594+ 'password' => '%env(key:pass:url:MONGODB_URL)%',
595+ ],
596+ ],
597+ 'connections' => [
598+ 'default' => [
599+ 'database_name' => '%env(key:path:url:MONGODB_URL)%',
600+ ],
601+ ],
602+ ]);
603+
604+ ..caution ::
605+
606+ In order to ease extraction of the resource from the URL, The leading
607+ ``/ `` is trimed from the ``path `` component.
608+
609+ ..versionadded ::4.3
610+
611+ The ``url `` processor was introduced in Symfony 4.3.
612+
613+ ``env(query_string:FOO) ``
614+ Parses an encoded string as if it were the query string passed via a URL.
615+
616+ ..code-block ::bash
617+
618+ # .env
619+ MONGODB_URL=" mongodb://db_user:db_password@127.0.0.1:27017/db_name?timeout=3000"
620+
621+ ..configuration-block ::
622+
623+ ..code-block ::yaml
624+
625+ # config/packages/mongodb.yaml
626+ mongo_db_bundle :
627+ clients :
628+ default :
629+ # ...
630+ connectTimeoutMS :' %env(int:key:timeout:query_string:MONGODB_URL)%'
631+
632+ ..code-block ::xml
633+
634+ <!-- config/packages/mongodb.xml-->
635+ <?xml version =" 1.0" encoding =" UTF-8" ?>
636+ <container xmlns =" http://symfony.com/schema/dic/services"
637+ xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
638+ xsi : schemaLocation =" http://symfony.com/schema/dic/services
639+ http://symfony.com/schema/dic/services/services-1.0.xsd" >
640+
641+ <mongodb : config >
642+ <mongodb : client name =" default" connectTimeoutMS =" %env(int:key:timeout:query_string:MONGODB_URL)%" />
643+ </mongodb : config >
644+ </container >
645+
646+ ..code-block ::php
647+
648+ // config/packages/mongodb.php
649+ $container->loadFromExtension('mongodb', [
650+ 'clients' => [
651+ 'default' => [
652+ // ...
653+ 'connectTimeoutMS' => '%env(int:key:timeout:query_string:MONGODB_URL)%',
654+ ],
655+ ],
656+ ]);
657+
658+ ..versionadded ::4.3
659+
660+ The ``query_string `` processor was introduced in Symfony 4.3.
661+
540662It is also possible to combine any number of processors:
541663
542664..code-block ::yaml