@@ -812,6 +812,56 @@ Symfony provides the following env var processors:
812
812
// config/services.php
813
813
$container->setParameter(' typed_env' , ' %env(defined:FOO)%' );
814
814
815
+ .. _urlencode_environment_variable_processor:
816
+
817
+ ``env(urlencode:FOO)``
818
+ Urlencode the content of ``FOO`` env var. This is especially useful when
819
+ ``FOO`` value is not compatible with DSN syntax.
820
+
821
+ .. configuration-block::
822
+
823
+ .. code-block:: yaml
824
+
825
+ # config/packages/framework.yaml
826
+ parameters:
827
+ env(DATABASE_URL): ' mysql://db_user:foo@b$r@127.0.0.1:3306/db_name'
828
+ encoded_database_url: ' %env(urlencode:DATABASE_URL)%'
829
+
830
+ .. code-block:: xml
831
+
832
+ <!-- config/packages/framework.xml -->
833
+ <?xml version="1.0" encoding="UTF-8" ?>
834
+ <container xmlns="http://symfony.com/schema/dic/services"
835
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
836
+ xmlns:framework="http://symfony.com/schema/dic/symfony"
837
+ xsi:schemaLocation="http://symfony.com/schema/dic/services
838
+ https://symfony.com/schema/dic/services/services-1.0.xsd
839
+ http://symfony.com/schema/dic/symfony
840
+ https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
841
+
842
+ <parameters>
843
+ <parameter key="env(DATABASE_URL)">mysql://db_user:foo@b$r@127.0.0.1:3306/db_name</parameter>
844
+ <parameter key="encoded_database_url">%env(urlencode:DATABASE_URL)%</parameter>
845
+ </parameters>
846
+ </container>
847
+
848
+ .. code-block:: php
849
+
850
+ // config/packages/framework.php
851
+ namespace Symfony\Component\DependencyInjection\Loader\Configurator;
852
+
853
+ use Symfony\Component\DependencyInjection\ContainerBuilder;
854
+ use Symfony\Config\FrameworkConfig;
855
+
856
+ return static function (ContainerBuilder $container): void {
857
+ $container->setParameter(' env(DATABASE_URL)' , ' mysql://db_user:foo@b$r@127.0.0.1:3306/db_name' );
858
+ $container->setParameter(' encoded_database_url' , ' %env(urlencode:DATABASE_URL)%' );
859
+ };
860
+
861
+ .. versionadded:: 7.1
862
+
863
+ The ``env(urlencode:...)`` env var processor was introduced in Symfony 7.1.
864
+
815
865
It is also possible to combine any number of processors:
816
866
817
867
.. configuration-block::
0 commit comments