protected function humanList($list, $glue = 'or', $template = null)
{
if (null !== $template) {
array_walk($list, function (&$item) use($template) {
$item = sprintf($template, $item);
});
}
if (count($list) > 1) {
$lastElement = array_pop($list);
return implode(', ', $list) . ' ' . $glue . ' ' . $lastElement;
} else {
return implode(', ', $list);
}
}