mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-06-17 08:47:52 +00:00
Merge pull request #423 from skipperbent/v4-development
Version 4.2.0.4
This commit is contained in:
Generated
+297
-356
File diff suppressed because it is too large
Load Diff
@@ -152,8 +152,6 @@ abstract class Route implements IRoute
|
|||||||
if (isset($this->where[$name]) === true) {
|
if (isset($this->where[$name]) === true) {
|
||||||
$regex = $this->where[$name];
|
$regex = $this->where[$name];
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
/* If method specific regex is defined use that, otherwise use the default parameter regex */
|
|
||||||
if ($parameterRegex !== null) {
|
if ($parameterRegex !== null) {
|
||||||
$regex = $parameterRegex;
|
$regex = $parameterRegex;
|
||||||
} else {
|
} else {
|
||||||
@@ -161,7 +159,7 @@ abstract class Route implements IRoute
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$regex = sprintf('(?:\/|\-)%1$s(?P<%2$s>%3$s)%1$s', $parameters[2][$key], $name, $regex);
|
$regex = sprintf('((\/|\-)(?P<%2$s>%3$s))%1$s', $parameters[2][$key], $name, $regex);
|
||||||
}
|
}
|
||||||
|
|
||||||
$urlRegex .= preg_quote($t, '/') . $regex;
|
$urlRegex .= preg_quote($t, '/') . $regex;
|
||||||
|
|||||||
@@ -6,10 +6,28 @@ require_once 'Dummy/Exception/ExceptionHandlerException.php';
|
|||||||
|
|
||||||
class RouterRouteTest extends \PHPUnit\Framework\TestCase
|
class RouterRouteTest extends \PHPUnit\Framework\TestCase
|
||||||
{
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Issue #421: Incorrectly optional character in route
|
||||||
|
*
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public function testOptionalCharacterRoute()
|
||||||
|
{
|
||||||
|
$result = false;
|
||||||
|
TestRouter::get('/api/v1/users/{userid}/projects/{id}/pages/{pageid?}', function () use (&$result) {
|
||||||
|
$result = true;
|
||||||
|
});
|
||||||
|
|
||||||
|
TestRouter::debug('/api/v1/users/1/projects/8399421535/pages/43/', 'get');
|
||||||
|
|
||||||
|
$this->assertTrue($result);
|
||||||
|
}
|
||||||
|
|
||||||
public function testMultiParam()
|
public function testMultiParam()
|
||||||
{
|
{
|
||||||
$result = false;
|
$result = false;
|
||||||
TestRouter::get('/test-{param1}-{param2}', function ($param1, $param2) use(&$result) {
|
TestRouter::get('/test-{param1}-{param2}', function ($param1, $param2) use (&$result) {
|
||||||
|
|
||||||
if ($param1 === 'param1' && $param2 === 'param2') {
|
if ($param1 === 'param1' && $param2 === 'param2') {
|
||||||
$result = true;
|
$result = true;
|
||||||
@@ -94,13 +112,12 @@ class RouterRouteTest extends \PHPUnit\Framework\TestCase
|
|||||||
$result = false;
|
$result = false;
|
||||||
TestRouter::request()->setHost('hello.world.com');
|
TestRouter::request()->setHost('hello.world.com');
|
||||||
|
|
||||||
TestRouter::group(['domain' => '{subdomain}.world.com'], function () use(&$result) {
|
TestRouter::group(['domain' => '{subdomain}.world.com'], function () use (&$result) {
|
||||||
TestRouter::get('/test', function ($subdomain = null) use(&$result) {
|
TestRouter::get('/test', function ($subdomain = null) use (&$result) {
|
||||||
$result = ($subdomain === 'hello');
|
$result = ($subdomain === 'hello');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
TestRouter::debug('/test', 'get');
|
TestRouter::debug('/test', 'get');
|
||||||
|
|
||||||
$this->assertTrue($result);
|
$this->assertTrue($result);
|
||||||
@@ -113,8 +130,8 @@ class RouterRouteTest extends \PHPUnit\Framework\TestCase
|
|||||||
|
|
||||||
$result = false;
|
$result = false;
|
||||||
|
|
||||||
TestRouter::group(['domain' => '{subdomain}.world.com'], function () use(&$result) {
|
TestRouter::group(['domain' => '{subdomain}.world.com'], function () use (&$result) {
|
||||||
TestRouter::get('/test', function ($subdomain = null) use(&$result) {
|
TestRouter::get('/test', function ($subdomain = null) use (&$result) {
|
||||||
$result = ($subdomain === 'hello');
|
$result = ($subdomain === 'hello');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -133,11 +150,12 @@ class RouterRouteTest extends \PHPUnit\Framework\TestCase
|
|||||||
$this->assertTrue(true);
|
$this->assertTrue(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testParameterDefaultValue() {
|
public function testParameterDefaultValue()
|
||||||
|
{
|
||||||
|
|
||||||
$defaultVariable = null;
|
$defaultVariable = null;
|
||||||
|
|
||||||
TestRouter::get('/my/{path?}', function($path = 'working') use(&$defaultVariable) {
|
TestRouter::get('/my/{path?}', function ($path = 'working') use (&$defaultVariable) {
|
||||||
$defaultVariable = $path;
|
$defaultVariable = $path;
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -157,7 +175,7 @@ class RouterRouteTest extends \PHPUnit\Framework\TestCase
|
|||||||
|
|
||||||
public function testDefaultParameterRegexGroup()
|
public function testDefaultParameterRegexGroup()
|
||||||
{
|
{
|
||||||
TestRouter::group(['defaultParameterRegex' => '[\w\-]+'], function() {
|
TestRouter::group(['defaultParameterRegex' => '[\w\-]+'], function () {
|
||||||
TestRouter::get('/my/{path}', 'DummyController@param');
|
TestRouter::get('/my/{path}', 'DummyController@param');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user