protected function _compilePattern($pattern)
{
// If a pattern contains ':', maybe there are placeholders to replace
if (Text::contains($pattern, ':')) {
$tr = ['/:controller' => '/{controller:[a-z\\d_-]+}', '/:action' => '/{action:[a-z\\d_-]+}', '/:params' => '/{params:.+}', '/:int' => '/(\\d+)'];
$pattern = strtr($pattern, $tr);
}
if (Text::contains($pattern, '{')) {
$pattern = $this->_extractNamedParams($pattern);
}
if (Text::contains($pattern, '(') || Text::contains($pattern, '[')) {
return '#^' . $pattern . '$#i';
} else {
return $pattern;
}
}