protected function extractInternalArguments(array &$arguments)
{
$internalArguments = [];
foreach ($arguments as $argumentKey => &$argumentValue) {
if (substr($argumentKey, 0, 2) === '__') {
$internalArguments[$argumentKey] = $argumentValue;
unset($arguments[$argumentKey]);
continue;
}
if (substr($argumentKey, 0, 2) === '--' && is_array($argumentValue)) {
$internalArguments[$argumentKey] = $this->extractInternalArguments($argumentValue);
if ($internalArguments[$argumentKey] === []) {
unset($internalArguments[$argumentKey]);
}
if ($argumentValue === []) {
unset($arguments[$argumentKey]);
}
}
}
return $internalArguments;
}