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