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