public function getName()
{
if (!empty($this->_name)) {
return $this->_name;
}
$name = '';
$keys = ['prefix' => ':', 'plugin' => '.', 'controller' => ':', 'action' => ''];
foreach ($keys as $key => $glue) {
$value = null;
if (strpos($this->template, ':' . $key) !== false) {
$value = '_' . $key;
} elseif (isset($this->defaults[$key])) {
$value = $this->defaults[$key];
}
if ($value === null) {
continue;
}
if (is_bool($value)) {
$value = $value ? '1' : '0';
}
$name .= $value . $glue;
}
return $this->_name = strtolower($name);
}