private function defaultsViaReflection($command, $callable)
{
if (!is_callable($callable)) {
return [];
}
$function = CallableReflection::create($callable);
$definition = $command->getDefinition();
$defaults = [];
foreach ($function->getParameters() as $parameter) {
if (!$parameter->isDefaultValueAvailable()) {
continue;
}
if (!$definition->hasArgument($parameter->name) && !$definition->hasOption($parameter->name)) {
continue;
}
$defaults[$parameter->name] = $parameter->getDefaultValue();
}
return $defaults;
}