mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-06-17 16:57:53 +00:00
Development
- Group only loads if prefix matches (if any).
This commit is contained in:
@@ -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
@@ -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() {
|
||||||
|
|||||||
@@ -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');
|
||||||
|
|||||||
@@ -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');
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user