Skip to content

Commit e8e0c1d

Browse files
committed
Add url and query_string processors
1 parent 0c1aa7d commit e8e0c1d

File tree

1 file changed

+124
-0
lines changed

1 file changed

+124
-0
lines changed

configuration/external_parameters.rst

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -537,6 +537,130 @@ Symfony provides the following env var processors:
537537

538538
The ``default`` processor was introduced in Symfony 4.3.
539539

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+
540664
It is also possible to combine any number of processors:
541665

542666
.. code-block:: yaml

0 commit comments

Comments
 (0)