Todas as chaves de parâmetro de consulta de solicitação em minúsculas em um aplicativo Silex

Para evitar nomes / chaves de parâmetros de consulta com distinção entre maiúsculas e minúsculas, o que pode levar a perdas ao extrair dados por meio $request->get('fooBar'), a seguinte transformação colocada em um middleware Silex é útil.

<?php
use SymfonyComponentHttpFoundationRequest;

$app
->before(function (Request $request) {
$request
->query->replace(
array_change_key_case
($request->query->all())
);
});

Posteriormente, os valores dos parâmetros da consulta podem ser extraídos, sem perda, via $request->get('foobar')mesmo quando a solicitação foi feita via ?fooBar=bazou even ?FooBar=baz.