/**
* Ensure several core system input variables are not arrays.
*
* @return void
*
* @since 3.9
*/
private function sanityCheckSystemVariables()
{
$input = $this->input;
// Get invalid input variables
$invalidInputVariables = array_filter(array('option', 'view', 'format', 'lang', 'Itemid', 'template', 'templateStyle', 'task'), function ($systemVariable) use($input) {
return $input->exists($systemVariable) && is_array($input->getRaw($systemVariable));
});
// Unset invalid system variables
foreach ($invalidInputVariables as $systemVariable) {
$input->set($systemVariable, null);
}
// Abort when there are invalid variables
if ($invalidInputVariables) {
throw new \RuntimeException('Invalid input, aborting application.');
}
}