This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Nicolas Grekas ab95ae3f7a bug #29409 Fix env fallback to an unresolved variable (jderusse)
This PR was submitted for the master branch but it was merged into the 4.2 branch instead (closes #29409).

Discussion
----------

Fix env fallback to an unresolved variable

| Q             | A
| ------------- | ---
| Branch?       | 4.2
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

This PR fixes a tricky case where an env processor require to resolve another parameter.

For example, allowing a user to either pass a PEM key or the path to a PEM key, I could use this config
```
parameters:
  private_key: '%env(default:raw_key:file:PRIVATE_KEY)%'
  raw_key: '%env(PRIVATE_KEY)%'
```

here, the default processor, performs a `$container->getParameter('raw_key')` which fail because `raw_key` has to be resolved to.

I'm not sure, if this is the right way to do it, please review it carefully.

Here is my reproduct case
```
<?php

require __DIR__.'/vendor/autoload.php';

use Symfony\Component\DependencyInjection\ContainerBuilder;

$containerBuilder = new ContainerBuilder();
$containerBuilder->setParameter('env(PRIVATE_KEY)', 'FOO');
$containerBuilder->setParameter('raw_key', '%env(PRIVATE_KEY)%');
$containerBuilder->setParameter('private_key', '%env(default:raw_key:file:PRIVATE_KEY)%');
$containerBuilder->compile(true);

var_dump($containerBuilder->getParameter('private_key'));
```

Commits
-------

ad6df01b9f Fix env fallback to an unresolved variable
2018-12-17 14:52:57 +01:00
.composer Drop hirak/prestissimo 2016-05-12 07:44:15 -05:00
.github Fix CI 2018-11-29 16:06:32 +01:00
src/Symfony Fix env fallback to an unresolved variable 2018-12-17 14:52:50 +01:00
.appveyor.yml Fix CI 2018-11-29 16:06:32 +01:00
.editorconfig Update .editorconfig 2018-09-06 16:22:56 +02:00
.gitignore Add appveyor.yml for C.I. on Windows 2015-08-25 23:41:37 +02:00
.php_cs.dist Merge branch '4.1' 2018-10-12 05:56:18 -07:00
.travis.yml Merge branch '4.1' into 4.2 2018-12-06 11:52:06 +00:00
CHANGELOG-4.0.md Merge branch '3.4' into 4.1 2018-08-01 18:22:14 +02:00
CHANGELOG-4.1.md updated CHANGELOG for 4.1.9 2018-12-06 17:34:44 +00:00
CHANGELOG-4.2.md updated CHANGELOG for 4.2.1 2018-12-06 17:39:47 +00:00
CODE_OF_CONDUCT.md Added the Code of Conduct file 2018-10-10 03:13:30 -07:00
composer.json Merge branch '4.1' into 4.2 2018-12-06 11:36:58 +00:00
CONTRIBUTING.md Mention the community review guide 2016-12-18 22:02:35 +01:00
CONTRIBUTORS.md update CONTRIBUTORS for 3.4.20 2018-12-06 14:59:29 +00:00
LICENSE fixed years in copyright 2018-01-03 08:23:28 +01:00
link appending root of Contracts dir (where composer.json is located) 2018-07-31 21:19:26 +03:00
phpunit [Debug] workaround opcache bug mutating "$this" !?! 2018-11-27 13:43:10 +01:00
phpunit.xml.dist Merge branch '4.1' 2018-11-11 20:52:12 +01:00
README.md Merge branch '2.8' into 3.4 2018-05-25 16:50:57 +02:00
UPGRADE-4.0.md Merge branch '2.8' into 3.4 2018-05-31 12:13:22 +02:00
UPGRADE-4.1.md Merge branch '4.0' into 4.1 2018-05-31 12:17:53 +02:00
UPGRADE-4.2.md [Contracts] extract LocaleAwareInterface out of TranslatorInterface 2018-12-05 08:06:11 +00:00
UPGRADE-5.0.md Merge branch '4.1' 2018-11-15 13:17:10 +01:00

Symfony is a PHP framework for web applications and a set of reusable PHP components. Symfony is used by thousands of web applications (including BlaBlaCar.com and Spotify.com) and most of the popular PHP projects (including Drupal and Magento).

Installation

Documentation

Community

Contributing

Symfony is an Open Source, community-driven project with thousands of contributors. Join them contributing code or contributing documentation.

Security Issues

If you discover a security vulnerability within Symfony, please follow our disclosure procedure.

About Us

Symfony development is sponsored by SensioLabs, led by the Symfony Core Team and supported by Symfony contributors.