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
+4 -6
View File
@@ -85,16 +85,18 @@ class RouterBase {
$this->currentRoute = $route; $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 = $route;
$group->renderRoute($this->request); $group->renderRoute($this->request);
$mergedSettings = array_merge($settings, $group->getMergeableSettings()); $mergedSettings = array_merge($settings, $group->getMergeableSettings());
// Add ExceptionHandler // Add ExceptionHandler
if($group->matchRoute($this->request) && $group->getExceptionHandler() !== null) { if($group->getExceptionHandler() !== null) {
$this->exceptionHandlers[] = $route; $this->exceptionHandlers[] = $route;
} }
} }
$this->currentRoute = null; $this->currentRoute = null;
@@ -476,8 +478,4 @@ class RouterBase {
return static::$instance; return static::$instance;
} }
public static function reset() {
static::$instance = null;
}
} }
+2 -3
View File
@@ -12,7 +12,6 @@ class GroupTest extends PHPUnit_Framework_TestCase {
} }
public function testGroup() { public function testGroup() {
\Pecee\SimpleRouter\RouterBase::reset();
$this->result = false; $this->result = false;
@@ -28,9 +27,9 @@ class GroupTest extends PHPUnit_Framework_TestCase {
} }
public function testNestedGroup() { 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' => '/api'], function() {
\Pecee\SimpleRouter\SimpleRouter::group(['prefix' => '/v1'], function() { \Pecee\SimpleRouter\SimpleRouter::group(['prefix' => '/v1'], function() {
-1
View File
@@ -7,7 +7,6 @@ require_once 'Dummy/Handler/ExceptionHandler.php';
class MiddlewareTest extends PHPUnit_Framework_TestCase { class MiddlewareTest extends PHPUnit_Framework_TestCase {
public function testMiddlewareFound() { public function testMiddlewareFound() {
\Pecee\SimpleRouter\RouterBase::reset();
\Pecee\Http\Request::getInstance()->setMethod('get'); \Pecee\Http\Request::getInstance()->setMethod('get');
\Pecee\Http\Request::getInstance()->setUri('/my/test/url'); \Pecee\Http\Request::getInstance()->setUri('/my/test/url');
+6 -19
View File
@@ -8,7 +8,6 @@ class RouterRouteTest extends PHPUnit_Framework_TestCase {
public function testNotFound() { public function testNotFound() {
\Pecee\SimpleRouter\RouterBase::reset();
\Pecee\Http\Request::getInstance()->setMethod('get'); \Pecee\Http\Request::getInstance()->setMethod('get');
\Pecee\Http\Request::getInstance()->setUri('/test-param1-param2'); \Pecee\Http\Request::getInstance()->setUri('/test-param1-param2');
@@ -31,46 +30,40 @@ class RouterRouteTest extends PHPUnit_Framework_TestCase {
public function testGet() { public function testGet() {
\Pecee\SimpleRouter\RouterBase::reset(); \Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url');
\Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setMethod('get');
\Pecee\Http\Request::getInstance()->setMethod('get');
\Pecee\SimpleRouter\SimpleRouter::get('/my/test/url', 'DummyController@start'); \Pecee\SimpleRouter\SimpleRouter::get('/my/test/url', 'DummyController@start');
\Pecee\SimpleRouter\SimpleRouter::start(); \Pecee\SimpleRouter\SimpleRouter::start();
} }
public function testPost() { public function testPost() {
\Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url');
\Pecee\Http\Request::getInstance()->setMethod('post'); \Pecee\Http\Request::getInstance()->setMethod('post');
\Pecee\SimpleRouter\RouterBase::reset();
\Pecee\SimpleRouter\SimpleRouter::post('/my/test/url', 'DummyController@start'); \Pecee\SimpleRouter\SimpleRouter::post('/my/test/url', 'DummyController@start');
\Pecee\SimpleRouter\SimpleRouter::start(); \Pecee\SimpleRouter\SimpleRouter::start();
} }
public function testPut() { public function testPut() {
\Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url');
\Pecee\Http\Request::getInstance()->setMethod('put'); \Pecee\Http\Request::getInstance()->setMethod('put');
\Pecee\SimpleRouter\RouterBase::reset();
\Pecee\SimpleRouter\SimpleRouter::put('/my/test/url', 'DummyController@start'); \Pecee\SimpleRouter\SimpleRouter::put('/my/test/url', 'DummyController@start');
\Pecee\SimpleRouter\SimpleRouter::start(); \Pecee\SimpleRouter\SimpleRouter::start();
} }
public function testDelete() { public function testDelete() {
\Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url');
\Pecee\Http\Request::getInstance()->setMethod('delete'); \Pecee\Http\Request::getInstance()->setMethod('delete');
\Pecee\SimpleRouter\RouterBase::reset();
\Pecee\SimpleRouter\SimpleRouter::delete('/my/test/url', 'DummyController@start'); \Pecee\SimpleRouter\SimpleRouter::delete('/my/test/url', 'DummyController@start');
\Pecee\SimpleRouter\SimpleRouter::start(); \Pecee\SimpleRouter\SimpleRouter::start();
} }
public function testMethodNotAllowed() { public function testMethodNotAllowed() {
\Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url');
\Pecee\SimpleRouter\RouterBase::reset();
\Pecee\Http\Request::getInstance()->setMethod('post'); \Pecee\Http\Request::getInstance()->setMethod('post');
\Pecee\SimpleRouter\SimpleRouter::get('/my/test/url', 'DummyController@start'); \Pecee\SimpleRouter\SimpleRouter::get('/my/test/url', 'DummyController@start');
@@ -85,8 +78,6 @@ class RouterRouteTest extends PHPUnit_Framework_TestCase {
public function testSimpleParam() { public function testSimpleParam() {
\Pecee\SimpleRouter\RouterBase::reset();
\Pecee\Http\Request::getInstance()->setMethod('get'); \Pecee\Http\Request::getInstance()->setMethod('get');
\Pecee\Http\Request::getInstance()->setUri('/test-param1'); \Pecee\Http\Request::getInstance()->setUri('/test-param1');
@@ -97,8 +88,6 @@ class RouterRouteTest extends PHPUnit_Framework_TestCase {
public function testMultiParam() { public function testMultiParam() {
\Pecee\SimpleRouter\RouterBase::reset();
\Pecee\Http\Request::getInstance()->setMethod('get'); \Pecee\Http\Request::getInstance()->setMethod('get');
\Pecee\Http\Request::getInstance()->setUri('/test-param1-param2'); \Pecee\Http\Request::getInstance()->setUri('/test-param1-param2');
@@ -109,8 +98,6 @@ class RouterRouteTest extends PHPUnit_Framework_TestCase {
public function testPathParam() { public function testPathParam() {
\Pecee\SimpleRouter\RouterBase::reset();
\Pecee\Http\Request::getInstance()->setMethod('get'); \Pecee\Http\Request::getInstance()->setMethod('get');
\Pecee\Http\Request::getInstance()->setUri('/test/path/param1'); \Pecee\Http\Request::getInstance()->setUri('/test/path/param1');