Skip to content

Commit ea7c631

Browse files
committed
Merge branch '6.4' into 7.3
* 6.4: [DependencyInjection] Update the examples about extracting URL values
2 parents e528343 + a8ecd69 commit ea7c631

File tree

1 file changed

+70
-62
lines changed

1 file changed

+70
-62
lines changed

configuration/env_var_processors.rst

Lines changed: 70 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -629,63 +629,62 @@ Symfony provides the following env var processors:
629629
.. code-block:: bash
630630
631631
# .env
632-
MONGODB_URL="mongodb://db_user:[email protected]:27017/db_name"
632+
DATABASE_URL="postgresql://db_user:[email protected]:5432/db_name"
633633
634634
.. configuration-block::
635635

636636
.. code-block:: yaml
637637
638-
# config/packages/mongodb.yaml
639-
mongo_db_bundle:
640-
clients:
641-
default:
642-
hosts:
643-
- { host: '%env(string:key:host:url:MONGODB_URL)%', port: '%env(int:key:port:url:MONGODB_URL)%' }
644-
username: '%env(string:key:user:url:MONGODB_URL)%'
645-
password: '%env(string:key:pass:url:MONGODB_URL)%'
646-
connections:
647-
default:
648-
database_name: '%env(key:path:url:MONGODB_URL)%'
638+
# config/services.yaml
639+
services:
640+
# ...
641+
642+
some_service:
643+
arguments:
644+
$host: '%env(string:key:host:url:DATABASE_URL)%'
645+
$port: '%env(int:key:port:url:DATABASE_URL)%'
646+
$username: '%env(string:key:user:url:DATABASE_URL)%'
647+
$password: '%env(string:key:pass:url:DATABASE_URL)%'
648+
$database_name: '%env(key:path:url:DATABASE_URL)%'
649649
650650
.. code-block:: xml
651651
652-
<!-- config/packages/mongodb.xml -->
652+
<!-- config/services.xml -->
653653
<?xml version="1.0" encoding="UTF-8" ?>
654654
<container xmlns="http://symfony.com/schema/dic/services"
655655
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
656656
xsi:schemaLocation="http://symfony.com/schema/dic/services
657-
https://symfony.com/schema/dic/services/services-1.0.xsd">
658-
659-
<mongodb:config>
660-
<mongodb:client name="default" username="%env(string:key:user:url:MONGODB_URL)%" password="%env(string:key:pass:url:MONGODB_URL)%">
661-
<mongodb:host host="%env(string:key:host:url:MONGODB_URL)%" port="%env(int:key:port:url:MONGODB_URL)%"/>
662-
</mongodb:client>
663-
<mongodb:connections name="default" database_name="%env(key:path:url:MONGODB_URL)%"/>
664-
</mongodb:config>
657+
https://symfony.com/schema/dic/services/services-1.0.xsd"
658+
>
659+
<services>
660+
<!-- ... -->
661+
662+
<service id="some_service">
663+
<argument key="$host">%env(string:key:host:url:DATABASE_URL)%</argument>
664+
<argument key="$port">%env(int:key:port:url:DATABASE_URL)%</argument>
665+
<argument key="$username">%env(string:key:user:url:DATABASE_URL)%</argument>
666+
<argument key="$password">%env(string:key:pass:url:DATABASE_URL)%</argument>
667+
<argument key="$database_name">%env(key:path:url:DATABASE_URL)%</argument>
668+
</service>
669+
</services>
665670
</container>
666671
667672
.. code-block:: php
668673
669-
// config/packages/mongodb.php
670-
$container->loadFromExtension('mongodb', [
671-
'clients' => [
672-
'default' => [
673-
'hosts' => [
674-
[
675-
'host' => '%env(string:key:host:url:MONGODB_URL)%',
676-
'port' => '%env(int:key:port:url:MONGODB_URL)%',
677-
],
678-
],
679-
'username' => '%env(string:key:user:url:MONGODB_URL)%',
680-
'password' => '%env(string:key:pass:url:MONGODB_URL)%',
681-
],
682-
],
683-
'connections' => [
684-
'default' => [
685-
'database_name' => '%env(key:path:url:MONGODB_URL)%',
686-
],
687-
],
688-
]);
674+
// config/services.php
675+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
676+
677+
return function(ContainerConfigurator $container): void {
678+
// ...
679+
680+
$services->set(SomeService::class)
681+
->arg('$host', '%env(string:key:host:url:DATABASE_URL)%')
682+
->arg('$port', '%env(int:key:port:url:DATABASE_URL)%')
683+
->arg('$username', '%env(string:key:user:url:DATABASE_URL)%')
684+
->arg('$password', '%env(string:key:pass:url:DATABASE_URL)%')
685+
->arg('$database_name', '%env(key:path:url:DATABASE_URL)%')
686+
;
687+
};
689688

690689
.. warning::
691690

@@ -699,44 +698,53 @@ Symfony provides the following env var processors:
699698
.. code-block:: bash
700699
701700
# .env
702-
MONGODB_URL="mongodb://db_user:[email protected]:27017/db_name?timeout=3000"
701+
DATABASE_URL="postgresql://db_user:[email protected]:5432/db_name?serverVersion=12.19&charset=utf8"
703702
704703
.. configuration-block::
705704

706705
.. code-block:: yaml
707706
708-
# config/packages/mongodb.yaml
709-
mongo_db_bundle:
710-
clients:
711-
default:
712-
# ...
713-
connectTimeoutMS: '%env(int:key:timeout:query_string:MONGODB_URL)%'
707+
# config/services.yaml
708+
services:
709+
# ...
710+
711+
some_service:
712+
arguments:
713+
$serverVersion: '%env(string:key:serverVersion:query_string:DATABASE_URL)%'
714+
$charset: '%env(string:key:charset:query_string:DATABASE_URL)%'
714715
715716
.. code-block:: xml
716717
717-
<!-- config/packages/mongodb.xml -->
718+
<!-- config/services.xml -->
718719
<?xml version="1.0" encoding="UTF-8" ?>
719720
<container xmlns="http://symfony.com/schema/dic/services"
720721
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
721722
xsi:schemaLocation="http://symfony.com/schema/dic/services
722-
https://symfony.com/schema/dic/services/services-1.0.xsd">
723+
https://symfony.com/schema/dic/services/services-1.0.xsd"
724+
>
725+
<services>
726+
<!-- ... -->
723727
724-
<mongodb:config>
725-
<mongodb:client name="default" connectTimeoutMS="%env(int:key:timeout:query_string:MONGODB_URL)%"/>
726-
</mongodb:config>
728+
<service id="some_service">
729+
<argument key="$serverVersion">%env(string:key:serverVersion:query_string:DATABASE_URL)%</argument>
730+
<argument key="$charset">%env(string:key:charset:query_string:DATABASE_URL)%</argument>
731+
</service>
732+
</services>
727733
</container>
728734
729735
.. code-block:: php
730736
731-
// config/packages/mongodb.php
732-
$container->loadFromExtension('mongodb', [
733-
'clients' => [
734-
'default' => [
735-
// ...
736-
'connectTimeoutMS' => '%env(int:key:timeout:query_string:MONGODB_URL)%',
737-
],
738-
],
739-
]);
737+
// config/services.php
738+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
739+
740+
return function(ContainerConfigurator $container): void {
741+
// ...
742+
743+
$services->set(SomeService::class)
744+
->arg('$serverVersion', '%env(string:key:serverVersion:query_string:DATABASE_URL)%')
745+
->arg('$charset', '%env(int:string:charset:query_string:DATABASE_URL)%')
746+
;
747+
};
740748

741749
``env(enum:FooEnum:BAR)``
742750
Tries to convert an environment variable to an actual ``\BackedEnum`` value.

0 commit comments

Comments
 (0)