protected static function getParameterType(\reflectionParameter $parameter)
{
switch (true) {
case $parameter->isArray():
return 'array ';
case method_exists($parameter, 'isCallable') && $parameter->isCallable():
return 'callable ';
case $class = $parameter->getClass():
return '\\' . $class->getName() . ' ';
case method_exists($parameter, 'hasType') && $parameter->hasType():
return $parameter->getType() . ' ';
default:
return '';
}
}