@@ -537,6 +537,129 @@ Symfony provides the following env var processors:
537
537
538
538
The ``default `` processor was introduced in Symfony 4.3.
539
539
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:[email protected] :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
+
617
+ .. code-block :: bash
618
+
619
+ # .env
620
+ MONGODB_URL=" mongodb://db_user:[email protected] :27017/db_name?timeout=3000"
621
+
622
+ .. configuration-block ::
623
+
624
+ .. code-block :: yaml
625
+
626
+ # config/packages/mongodb.yaml
627
+ mongo_db_bundle :
628
+ clients :
629
+ default :
630
+ # ...
631
+ connectTimeoutMS : ' %env(int:key:timeout:query_string:key:query:url:MONGODB_URL)%'
632
+
633
+ .. code-block :: xml
634
+
635
+ <!-- config/packages/mongodb.xml -->
636
+ <?xml version =" 1.0" encoding =" UTF-8" ?>
637
+ <container xmlns =" http://symfony.com/schema/dic/services"
638
+ xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
639
+ xsi : schemaLocation =" http://symfony.com/schema/dic/services
640
+ http://symfony.com/schema/dic/services/services-1.0.xsd" >
641
+
642
+ <mongodb : config >
643
+ <mongodb : client name =" default" connectTimeoutMS =" %env(int:key:timeout:query_string:key:query:url:MONGODB_URL)%" />
644
+ </mongodb : config >
645
+ </container >
646
+
647
+ .. code-block :: php
648
+
649
+ // config/packages/mongodb.php
650
+ $container->loadFromExtension('mongodb', [
651
+ 'clients' => [
652
+ 'default' => [
653
+ // ...
654
+ 'connectTimeoutMS' => '%env(int:key:timeout:query_string:key:query:url:MONGODB_URL)%',
655
+ ],
656
+ ],
657
+ ]);
658
+
659
+ .. versionadded :: 4.3
660
+
661
+ The ``query_string `` processor was introduced in Symfony 4.3.
662
+
540
663
It is also possible to combine any number of processors:
541
664
542
665
.. code-block :: yaml
0 commit comments