Skip to content

Commit e3f9efb

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

File tree

1 file changed

+123
-0
lines changed

1 file changed

+123
-0
lines changed

configuration/external_parameters.rst

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

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

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

542665
.. code-block:: yaml

0 commit comments

Comments
 (0)