Merge pull request #275 from skipperbent/fix-unicode

Added unicode parameter regex support.
This commit is contained in:
Simon Sessingø
2017-08-23 23:50:04 +02:00
committed by GitHub
3 changed files with 4 additions and 4 deletions
@@ -74,7 +74,7 @@ abstract class LoadableRoute extends Route implements ILoadableRoute
$regex = sprintf(static::PARAMETERS_REGEX_FORMAT, $this->paramModifiers[0], $this->paramOptionalSymbol, $this->paramModifiers[1]);
if (preg_match_all('/' . $regex . '/', $this->url, $matches)) {
if (preg_match_all('/' . $regex . '/u', $this->url, $matches)) {
$this->parameters = array_fill_keys($matches[1], null);
}
}
+2 -2
View File
@@ -116,7 +116,7 @@ abstract class Route implements IRoute
// Ensures that hostnames/domains will work with parameters
$url = '/' . ltrim($url, '/');
if (preg_match_all('/' . $regex . '/', $route, $parameters)) {
if (preg_match_all('/' . $regex . '/u', $route, $parameters)) {
$urlParts = preg_split('/((\-?\/?)\{[^}]+\})/', rtrim($route, '/'));
@@ -154,7 +154,7 @@ abstract class Route implements IRoute
$urlRegex = preg_quote($route, '/');
}
if (preg_match('/^' . $urlRegex . '\/?$/', $url, $matches) > 0) {
if (preg_match('/^' . $urlRegex . '\/?$/u', $url, $matches) > 0) {
$values = [];
+1 -1
View File
@@ -31,7 +31,7 @@ class RouterUrlTest extends PHPUnit_Framework_TestCase
public function testUnicodeCharacters()
{
// Test spanish characters
TestRouter::get('/cursos/listado/{listado?}/{category?}', 'DummyController@method1', ['defaultParameterRegex' => '[\w\p{L}\s-]+']);
TestRouter::get('/cursos/listado/{listado?}/{category?}', 'DummyController@method1', ['defaultParameterRegex' => '[\w\p{L}\s-]+']);
TestRouter::debugNoReset('/cursos/listado/especialidad/cirugía local', 'get');
$this->assertEquals('/cursos/listado/{listado?}/{category?}/', TestRouter::router()->getRequest()->getLoadedRoute()->getUrl());