Skip to content

Commit d98cfbf

Browse files
javiereguiluzGuikingone
authored andcommitted
Revert "minor symfony#9507 Document the built in env var processors (mcfedr, javiereguiluz)"
This reverts commit c98569d, reversing changes made to 2a76e88.
1 parent 06abfe1 commit d98cfbf

File tree

1 file changed

+0
-175
lines changed

1 file changed

+0
-175
lines changed

configuration/external_parameters.rst

Lines changed: 0 additions & 175 deletions
Original file line numberDiff line numberDiff line change
@@ -99,181 +99,6 @@ will be used whenever the corresponding environment variable is *not* found:
9999
// config/services.php
100100
$container->setParameter('env(DATABASE_HOST)', 'localhost');
101101
102-
Environment Variable Processors
103-
-------------------------------
104-
105-
The values of the environment variables are considered strings by default.
106-
However, your code may expect other data types, like integers or booleans.
107-
Symfony solves this problem with *processors*, which modify the contents of the
108-
given environment variables. The following example uses the integer processor to
109-
turn the value of the ``HTTP_PORT`` env var into an integer:
110-
111-
.. configuration-block::
112-
113-
.. code-block:: yaml
114-
115-
# config/packages/framework.yaml
116-
framework:
117-
router:
118-
http_port: env(int:HTTP_PORT)
119-
120-
.. code-block:: xml
121-
122-
<!-- config/packages/framework.xml -->
123-
<?xml version="1.0" encoding="UTF-8" ?>
124-
125-
<container xmlns="http://symfony.com/schema/dic/services"
126-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
127-
xmlns:framework="http://symfony.com/schema/dic/symfony"
128-
xsi:schemaLocation="http://symfony.com/schema/dic/services
129-
http://symfony.com/schema/dic/services/services-1.0.xsd
130-
http://symfony.com/schema/dic/symfony
131-
http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
132-
133-
<framework:config>
134-
<framework:router http_port="%env(int:HTTP_PORT)%" />
135-
</framework:config>
136-
</container>
137-
138-
.. code-block:: php
139-
140-
// config/packages/doctrine.php
141-
$container->loadFromExtension('framework', array(
142-
'router' => array(
143-
'http_port' => '%env(int:HTTP_PORT)%',
144-
)
145-
));
146-
147-
Symfony provides the following env var processors:
148-
149-
``env(string:FOO)``
150-
Casts ``FOO`` to a string:
151-
152-
.. code-block:: yaml
153-
154-
parameters:
155-
env(SECRET): "some_secret"
156-
framework:
157-
secret: '%env(string:SECRET)%'
158-
159-
``env(bool:FOO)``
160-
Casts ``FOO`` to a bool:
161-
162-
.. code-block:: yaml
163-
164-
parameters:
165-
env(HTTP_METHOD_OVERRIDE): "true"
166-
framework:
167-
http_method_override: '%env(bool:HTTP_METHOD_OVERRIDE)%'
168-
169-
``env(int:FOO)``
170-
Casts ``FOO`` to an int.
171-
172-
``env(float:FOO)``
173-
Casts ``FOO`` to an float.
174-
175-
``env(const:FOO)``
176-
Finds the const value named in ``FOO``:
177-
178-
.. code-block:: yaml
179-
180-
parameters:
181-
env(HEALTH_CHECK_METHOD): "Symfony\Component\HttpFoundation\Request:METHOD_HEAD"
182-
security:
183-
access_control:
184-
- { path: '^/health-check$', methods: '%env(const:HEALTH_CHECK_METHOD)%' }
185-
186-
``env(base64:FOO)``
187-
Decodes the content of ``FOO``, which is a base64 encoded string.
188-
189-
``env(json:FOO)``
190-
Decodes the content of ``FOO``, which is a JSON encoded string. It returns
191-
either an array or ``null``:
192-
193-
.. code-block:: yaml
194-
195-
parameters:
196-
env(TRUSTED_HOSTS): "['10.0.0.1', '10.0.0.2']"
197-
framework:
198-
trusted_hosts: '%env(json:TRUSTED_HOSTS)%'
199-
200-
``env(resolve:FOO)``
201-
Replaces the string ``FOO`` by the value of a config parameter with the
202-
same name:
203-
204-
.. code-block:: yaml
205-
206-
parameters:
207-
env(HOST): '10.0.0.1'
208-
env(SENTRY_DSN): "http://%env(HOST)%/project"
209-
sentry:
210-
dsn: '%env(resolve:SENTRY_DSN)%'
211-
212-
``env(csv:FOO)``
213-
Decodes the content of ``FOO``, which is a CSV-encoded string:
214-
215-
.. code-block:: yaml
216-
217-
parameters:
218-
env(TRUSTED_HOSTS): "10.0.0.1, 10.0.0.2"
219-
framework:
220-
trusted_hosts: '%env(csv:TRUSTED_HOSTS)%'
221-
222-
``env(file:FOO)``
223-
Returns the contents of a file whose path is the value of the ``FOO`` env var:
224-
225-
.. code-block:: yaml
226-
227-
parameters:
228-
env(AUTH_FILE): "../config/auth.json"
229-
google:
230-
auth: '%env(file:AUTH_FILE)%'
231-
232-
It is also possible to combine any number of processors:
233-
234-
.. code-block:: yaml
235-
236-
parameters:
237-
env(AUTH_FILE): "%kernel.project_dir%/config/auth.json"
238-
google:
239-
# 1. gets the value of the AUTH_FILE env var
240-
# 2. replaces the values of any config param to get the config path
241-
# 3. gets the content of the file stored in that path
242-
# 4. JSON-decodes the content of the file and returns it
243-
auth: '%env(json:file:resolve:AUTH_FILE)%'
244-
245-
Custom Environment Variable Processors
246-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
247-
248-
It's also possible to add your own processors for environment variables. First,
249-
create a class that implements
250-
:class:`Symfony\\Component\\DependencyInjection\\EnvVarProcessorInterface` and
251-
then, define a service for that class::
252-
253-
class LowercasingEnvVarProcessor implements EnvVarProcessorInterface
254-
{
255-
private $container;
256-
257-
public function __construct(ContainerInterface $container)
258-
{
259-
$this->container = $container;
260-
}
261-
262-
public function getEnv($prefix, $name, \Closure $getEnv)
263-
{
264-
$env = $getEnv($name);
265-
266-
return strtolower($env);
267-
}
268-
269-
public static function getProvidedTypes()
270-
{
271-
return [
272-
'lowercase' => 'string',
273-
];
274-
}
275-
}
276-
277102
.. _configuration-env-var-in-prod:
278103

279104
Configuring Environment Variables in Production

0 commit comments

Comments
 (0)