[WebProfilerBundle] Expose dotenv variables

This commit is contained in:
Roland Franssen 2017-11-26 20:20:54 +01:00 committed by Fabien Potencier
parent bf4b09f9c5
commit de33d87abd
2 changed files with 22 additions and 1 deletions

View File

@ -167,7 +167,15 @@
{% endif %} {% endif %}
<h3>Server Parameters</h3> <h3>Server Parameters</h3>
{{ include('@WebProfiler/Profiler/bag.html.twig', { bag: collector.requestserver }, with_context = false) }} <h4>Defined in .env</h4>
{{ include('@WebProfiler/Profiler/bag.html.twig', { bag: collector.dotenvvars }, with_context = false) }}
<h4>Defined as regular env variables</h4>
{% set requestserver = [] %}
{% for key, value in collector.requestserver if key not in collector.dotenvvars.keys %}
{% set requestserver = requestserver|merge({(key): value}) %}
{% endfor %}
{{ include('@WebProfiler/Profiler/table.html.twig', { data: requestserver }, with_context = false) }}
</div> </div>
</div> </div>

View File

@ -78,6 +78,13 @@ class RequestDataCollector extends DataCollector implements EventSubscriberInter
$responseCookies[$cookie->getName()] = $cookie; $responseCookies[$cookie->getName()] = $cookie;
} }
$dotenvVars = array();
foreach (explode(',', getenv('SYMFONY_DOTENV_VARS')) as $name) {
if ('' !== $name && false !== $value = getenv($name)) {
$dotenvVars[$name] = $value;
}
}
$this->data = array( $this->data = array(
'method' => $request->getMethod(), 'method' => $request->getMethod(),
'format' => $request->getRequestFormat(), 'format' => $request->getRequestFormat(),
@ -100,6 +107,7 @@ class RequestDataCollector extends DataCollector implements EventSubscriberInter
'path_info' => $request->getPathInfo(), 'path_info' => $request->getPathInfo(),
'controller' => 'n/a', 'controller' => 'n/a',
'locale' => $request->getLocale(), 'locale' => $request->getLocale(),
'dotenv_vars' => $dotenvVars,
); );
if (isset($this->data['request_headers']['php-auth-pw'])) { if (isset($this->data['request_headers']['php-auth-pw'])) {
@ -254,6 +262,11 @@ class RequestDataCollector extends DataCollector implements EventSubscriberInter
return $this->data['locale']; return $this->data['locale'];
} }
public function getDotenvVars()
{
return new ParameterBag($this->data['dotenv_vars']->getValue());
}
/** /**
* Gets the route name. * Gets the route name.
* *