Skip to content

Commit a8ecd69

Browse files
committed
minor #21552 [DependencyInjection] Update the examples about extracting URL values (javiereguiluz)
This PR was merged into the 6.4 branch. Discussion ---------- [DependencyInjection] Update the examples about extracting URL values Fixes #21533. Commits ------- c293e62 [DependencyInjection] Update the examples about extracting URL values
2 parents 403563f + c293e62 commit a8ecd69

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
@@ -633,63 +633,62 @@ Symfony provides the following env var processors:
633633
.. code-block:: bash
634634
635635
# .env
636-
MONGODB_URL="mongodb://db_user:db_password@127.0.0.1:27017/db_name"
636+
DATABASE_URL="postgresql://db_user:db_password@127.0.0.1:5432/db_name"
637637
638638
.. configuration-block::
639639

640640
.. code-block:: yaml
641641
642-
# config/packages/mongodb.yaml
643-
mongo_db_bundle:
644-
clients:
645-
default:
646-
hosts:
647-
- { host: '%env(string:key:host:url:MONGODB_URL)%', port: '%env(int:key:port:url:MONGODB_URL)%' }
648-
username: '%env(string:key:user:url:MONGODB_URL)%'
649-
password: '%env(string:key:pass:url:MONGODB_URL)%'
650-
connections:
651-
default:
652-
database_name: '%env(key:path:url:MONGODB_URL)%'
642+
# config/services.yaml
643+
services:
644+
# ...
645+
646+
some_service:
647+
arguments:
648+
$host: '%env(string:key:host:url:DATABASE_URL)%'
649+
$port: '%env(int:key:port:url:DATABASE_URL)%'
650+
$username: '%env(string:key:user:url:DATABASE_URL)%'
651+
$password: '%env(string:key:pass:url:DATABASE_URL)%'
652+
$database_name: '%env(key:path:url:DATABASE_URL)%'
653653
654654
.. code-block:: xml
655655
656-
<!-- config/packages/mongodb.xml -->
656+
<!-- config/services.xml -->
657657
<?xml version="1.0" encoding="UTF-8" ?>
658658
<container xmlns="http://symfony.com/schema/dic/services"
659659
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
660660
xsi:schemaLocation="http://symfony.com/schema/dic/services
661-
https://symfony.com/schema/dic/services/services-1.0.xsd">
662-
663-
<mongodb:config>
664-
<mongodb:client name="default" username="%env(string:key:user:url:MONGODB_URL)%" password="%env(string:key:pass:url:MONGODB_URL)%">
665-
<mongodb:host host="%env(string:key:host:url:MONGODB_URL)%" port="%env(int:key:port:url:MONGODB_URL)%"/>
666-
</mongodb:client>
667-
<mongodb:connections name="default" database_name="%env(key:path:url:MONGODB_URL)%"/>
668-
</mongodb:config>
661+
https://symfony.com/schema/dic/services/services-1.0.xsd"
662+
>
663+
<services>
664+
<!-- ... -->
665+
666+
<service id="some_service">
667+
<argument key="$host">%env(string:key:host:url:DATABASE_URL)%</argument>
668+
<argument key="$port">%env(int:key:port:url:DATABASE_URL)%</argument>
669+
<argument key="$username">%env(string:key:user:url:DATABASE_URL)%</argument>
670+
<argument key="$password">%env(string:key:pass:url:DATABASE_URL)%</argument>
671+
<argument key="$database_name">%env(key:path:url:DATABASE_URL)%</argument>
672+
</service>
673+
</services>
669674
</container>
670675
671676
.. code-block:: php
672677
673-
// config/packages/mongodb.php
674-
$container->loadFromExtension('mongodb', [
675-
'clients' => [
676-
'default' => [
677-
'hosts' => [
678-
[
679-
'host' => '%env(string:key:host:url:MONGODB_URL)%',
680-
'port' => '%env(int:key:port:url:MONGODB_URL)%',
681-
],
682-
],
683-
'username' => '%env(string:key:user:url:MONGODB_URL)%',
684-
'password' => '%env(string:key:pass:url:MONGODB_URL)%',
685-
],
686-
],
687-
'connections' => [
688-
'default' => [
689-
'database_name' => '%env(key:path:url:MONGODB_URL)%',
690-
],
691-
],
692-
]);
678+
// config/services.php
679+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
680+
681+
return function(ContainerConfigurator $container): void {
682+
// ...
683+
684+
$services->set(SomeService::class)
685+
->arg('$host', '%env(string:key:host:url:DATABASE_URL)%')
686+
->arg('$port', '%env(int:key:port:url:DATABASE_URL)%')
687+
->arg('$username', '%env(string:key:user:url:DATABASE_URL)%')
688+
->arg('$password', '%env(string:key:pass:url:DATABASE_URL)%')
689+
->arg('$database_name', '%env(key:path:url:DATABASE_URL)%')
690+
;
691+
};
693692

694693
.. warning::
695694

@@ -703,44 +702,53 @@ Symfony provides the following env var processors:
703702
.. code-block:: bash
704703
705704
# .env
706-
MONGODB_URL="mongodb://db_user:db_password@127.0.0.1:27017/db_name?timeout=3000"
705+
DATABASE_URL="postgresql://db_user:db_password@127.0.0.1:5432/db_name?serverVersion=12.19&charset=utf8"
707706
708707
.. configuration-block::
709708

710709
.. code-block:: yaml
711710
712-
# config/packages/mongodb.yaml
713-
mongo_db_bundle:
714-
clients:
715-
default:
716-
# ...
717-
connectTimeoutMS: '%env(int:key:timeout:query_string:MONGODB_URL)%'
711+
# config/services.yaml
712+
services:
713+
# ...
714+
715+
some_service:
716+
arguments:
717+
$serverVersion: '%env(string:key:serverVersion:query_string:DATABASE_URL)%'
718+
$charset: '%env(string:key:charset:query_string:DATABASE_URL)%'
718719
719720
.. code-block:: xml
720721
721-
<!-- config/packages/mongodb.xml -->
722+
<!-- config/services.xml -->
722723
<?xml version="1.0" encoding="UTF-8" ?>
723724
<container xmlns="http://symfony.com/schema/dic/services"
724725
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
725726
xsi:schemaLocation="http://symfony.com/schema/dic/services
726-
https://symfony.com/schema/dic/services/services-1.0.xsd">
727+
https://symfony.com/schema/dic/services/services-1.0.xsd"
728+
>
729+
<services>
730+
<!-- ... -->
727731
728-
<mongodb:config>
729-
<mongodb:client name="default" connectTimeoutMS="%env(int:key:timeout:query_string:MONGODB_URL)%"/>
730-
</mongodb:config>
732+
<service id="some_service">
733+
<argument key="$serverVersion">%env(string:key:serverVersion:query_string:DATABASE_URL)%</argument>
734+
<argument key="$charset">%env(string:key:charset:query_string:DATABASE_URL)%</argument>
735+
</service>
736+
</services>
731737
</container>
732738
733739
.. code-block:: php
734740
735-
// config/packages/mongodb.php
736-
$container->loadFromExtension('mongodb', [
737-
'clients' => [
738-
'default' => [
739-
// ...
740-
'connectTimeoutMS' => '%env(int:key:timeout:query_string:MONGODB_URL)%',
741-
],
742-
],
743-
]);
741+
// config/services.php
742+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
743+
744+
return function(ContainerConfigurator $container): void {
745+
// ...
746+
747+
$services->set(SomeService::class)
748+
->arg('$serverVersion', '%env(string:key:serverVersion:query_string:DATABASE_URL)%')
749+
->arg('$charset', '%env(int:string:charset:query_string:DATABASE_URL)%')
750+
;
751+
};
744752

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

0 commit comments

Comments
 (0)