@@ -537,6 +537,128 @@ 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: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
+
540
662
It is also possible to combine any number of processors:
541
663
542
664
.. code-block :: yaml
0 commit comments