public static function getRoutePaths($paths = null)
{
$routePaths = [];
if (is_string($paths)) {
$parts = explode('::', $paths);
if (count($parts) === 2) {
$routePaths['controller'] = $parts[0];
/** @noinspection MultiAssignmentUsageInspection */
$routePaths['action'] = $parts[1];
} else {
$routePaths['controller'] = $parts[0];
}
} elseif (is_array($paths)) {
if (isset($paths[0])) {
if (strpos($paths[0], '::')) {
$parts = explode('::', $paths[0]);
$routePaths['controller'] = $parts[0];
$routePaths['action'] = $parts[1];
} else {
$routePaths['controller'] = $paths[0];
}
}
if (isset($paths[1])) {
$routePaths['action'] = $paths[1];
}
foreach ($paths as $k => $v) {
if (is_string($k)) {
$routePaths[$k] = $v;
}
}
}
if (isset($routePaths['controller']) && is_string($routePaths['controller'])) {
$parts = explode('\\', $routePaths['controller']);
$routePaths['controller'] = basename(end($parts), 'Controller');
}
return $routePaths;
}