diff --git a/src/Pecee/SimpleRouter/RouterBase.php b/src/Pecee/SimpleRouter/RouterBase.php index 79603a0..248205c 100644 --- a/src/Pecee/SimpleRouter/RouterBase.php +++ b/src/Pecee/SimpleRouter/RouterBase.php @@ -85,16 +85,18 @@ class RouterBase { $this->currentRoute = $route; - if($route instanceof RouterGroup && is_callable($route->getCallback())) { + if($route instanceof RouterGroup && is_callable($route->getCallback()) && $route->matchRoute($this->request)) { + $group = $route; $group->renderRoute($this->request); $mergedSettings = array_merge($settings, $group->getMergeableSettings()); // Add ExceptionHandler - if($group->matchRoute($this->request) && $group->getExceptionHandler() !== null) { + if($group->getExceptionHandler() !== null) { $this->exceptionHandlers[] = $route; } + } $this->currentRoute = null; @@ -476,8 +478,4 @@ class RouterBase { return static::$instance; } - public static function reset() { - static::$instance = null; - } - } \ No newline at end of file diff --git a/test/GroupTest.php b/test/GroupTest.php index d2ac250..e1ce45d 100644 --- a/test/GroupTest.php +++ b/test/GroupTest.php @@ -12,7 +12,6 @@ class GroupTest extends PHPUnit_Framework_TestCase { } public function testGroup() { - \Pecee\SimpleRouter\RouterBase::reset(); $this->result = false; @@ -28,9 +27,9 @@ class GroupTest extends PHPUnit_Framework_TestCase { } public function testNestedGroup() { - \Pecee\SimpleRouter\RouterBase::reset(); - \Pecee\Http\Request::getInstance()->setUri('/api/v1/test'); + \Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/api/v1/test'); + \Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setMethod('get'); \Pecee\SimpleRouter\SimpleRouter::group(['prefix' => '/api'], function() { \Pecee\SimpleRouter\SimpleRouter::group(['prefix' => '/v1'], function() { diff --git a/test/MiddlewareTest.php b/test/MiddlewareTest.php index 1ec6b60..287f899 100644 --- a/test/MiddlewareTest.php +++ b/test/MiddlewareTest.php @@ -7,7 +7,6 @@ require_once 'Dummy/Handler/ExceptionHandler.php'; class MiddlewareTest extends PHPUnit_Framework_TestCase { public function testMiddlewareFound() { - \Pecee\SimpleRouter\RouterBase::reset(); \Pecee\Http\Request::getInstance()->setMethod('get'); \Pecee\Http\Request::getInstance()->setUri('/my/test/url'); diff --git a/test/RouterRouteTest.php b/test/RouterRouteTest.php index a98ffb3..ffa0299 100644 --- a/test/RouterRouteTest.php +++ b/test/RouterRouteTest.php @@ -8,7 +8,6 @@ class RouterRouteTest extends PHPUnit_Framework_TestCase { public function testNotFound() { - \Pecee\SimpleRouter\RouterBase::reset(); \Pecee\Http\Request::getInstance()->setMethod('get'); \Pecee\Http\Request::getInstance()->setUri('/test-param1-param2'); @@ -31,46 +30,40 @@ class RouterRouteTest extends PHPUnit_Framework_TestCase { public function testGet() { - \Pecee\SimpleRouter\RouterBase::reset(); - - \Pecee\Http\Request::getInstance()->setMethod('get'); + \Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url'); + \Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setMethod('get'); \Pecee\SimpleRouter\SimpleRouter::get('/my/test/url', 'DummyController@start'); \Pecee\SimpleRouter\SimpleRouter::start(); } public function testPost() { + \Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url'); \Pecee\Http\Request::getInstance()->setMethod('post'); - \Pecee\SimpleRouter\RouterBase::reset(); - \Pecee\SimpleRouter\SimpleRouter::post('/my/test/url', 'DummyController@start'); \Pecee\SimpleRouter\SimpleRouter::start(); } public function testPut() { + \Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url'); \Pecee\Http\Request::getInstance()->setMethod('put'); - \Pecee\SimpleRouter\RouterBase::reset(); - \Pecee\SimpleRouter\SimpleRouter::put('/my/test/url', 'DummyController@start'); \Pecee\SimpleRouter\SimpleRouter::start(); } public function testDelete() { + \Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url'); \Pecee\Http\Request::getInstance()->setMethod('delete'); - \Pecee\SimpleRouter\RouterBase::reset(); - \Pecee\SimpleRouter\SimpleRouter::delete('/my/test/url', 'DummyController@start'); \Pecee\SimpleRouter\SimpleRouter::start(); } public function testMethodNotAllowed() { - - \Pecee\SimpleRouter\RouterBase::reset(); - + \Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url'); \Pecee\Http\Request::getInstance()->setMethod('post'); \Pecee\SimpleRouter\SimpleRouter::get('/my/test/url', 'DummyController@start'); @@ -85,8 +78,6 @@ class RouterRouteTest extends PHPUnit_Framework_TestCase { public function testSimpleParam() { - \Pecee\SimpleRouter\RouterBase::reset(); - \Pecee\Http\Request::getInstance()->setMethod('get'); \Pecee\Http\Request::getInstance()->setUri('/test-param1'); @@ -97,8 +88,6 @@ class RouterRouteTest extends PHPUnit_Framework_TestCase { public function testMultiParam() { - \Pecee\SimpleRouter\RouterBase::reset(); - \Pecee\Http\Request::getInstance()->setMethod('get'); \Pecee\Http\Request::getInstance()->setUri('/test-param1-param2'); @@ -109,8 +98,6 @@ class RouterRouteTest extends PHPUnit_Framework_TestCase { public function testPathParam() { - \Pecee\SimpleRouter\RouterBase::reset(); - \Pecee\Http\Request::getInstance()->setMethod('get'); \Pecee\Http\Request::getInstance()->setUri('/test/path/param1');