Skip to content

Commit 52f80e9

Browse files
committed
[DependencyInjection] Add shuffle env var processor documentation
Closes #16961
1 parent 8896d7a commit 52f80e9

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

configuration/env_var_processors.rst

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,59 @@ Symfony provides the following env var processors:
378378
$container->setParameter('env(TRUSTED_HOSTS)', '10.0.0.1,10.0.0.2');
379379
$framework->trustedHosts(env('TRUSTED_HOSTS')->csv());
380380
};
381+
``env(shuffle:FOO)``
382+
Randomly shuffles values of ``FOO``, which is an array.
383+
Usable when combining with other processors, as array is a prerequisite.
384+
385+
.. configuration-block::
386+
387+
.. code-block:: yaml
388+
389+
# config/packages/framework.yaml
390+
parameters:
391+
env(REDIS_NODES): "127.0.0.1:6380,127.0.0.1:6381"
392+
services:
393+
RedisCluster:
394+
class: RedisCluster
395+
arguments: [null, "%env(shuffle:csv:REDIS_NODES)%"]
396+
397+
.. code-block:: xml
398+
399+
<!-- config/packages/framework.xml -->
400+
<?xml version="1.0" encoding="UTF-8" ?>
401+
<container xmlns="http://symfony.com/schema/dic/services"
402+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
403+
xmlns:framework="http://symfony.com/schema/dic/symfony"
404+
xsi:schemaLocation="http://symfony.com/schema/dic/services
405+
https://symfony.com/schema/dic/services/services-1.0.xsd
406+
http://symfony.com/schema/dic/symfony
407+
https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
408+
409+
<parameters>
410+
<parameter key="env(REDIS_NODES)">redis://127.0.0.1:6380,redis://127.0.0.1:6381</parameter>
411+
</parameters>
412+
413+
<services>
414+
<service id="RedisCluster" class="RedisCluster">
415+
<argument>null</argument>
416+
<argument>%env(shuffle:csv:REDIS_NODES)%</argument>
417+
</service>
418+
</services>
419+
</container>
420+
421+
.. code-block:: php
422+
423+
// config/services.php
424+
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
425+
426+
return static function (ContainerConfigurator $configurator): void {
427+
$container = $configurator->services()
428+
->set(\RedisCluster::class, \RedisCluster::class)->args([null, '%env(shuffle:csv:REDIS_NODES)%']);
429+
};
430+
431+
.. versionadded:: 6.2
432+
433+
The ``env(shuffle:...)`` env var processor was introduced in Symfony 6.2.
381434

382435
``env(file:FOO)``
383436
Returns the contents of a file whose path is the value of the ``FOO`` env var:

0 commit comments

Comments
 (0)