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