@@ -540,6 +540,128 @@ Symfony provides the following env var processors:
540
540
541
541
The ``default `` processor was introduced in Symfony 4.3.
542
542
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
+
543
665
It is also possible to combine any number of processors:
544
666
545
667
.. code-block :: yaml
0 commit comments