Development

- Group only loads if prefix matches (if any).
This commit is contained in:
Simon Sessingø
2016-11-06 08:13:47 +01:00
parent 035a5b1629
commit 98cc8504d4
4 changed files with 12 additions and 29 deletions

View File

@@ -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;
}
}

View File

@@ -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() {

View File

@@ -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');

View File

@@ -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');