mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-06-17 08:47:52 +00:00
Fixes for issue #248
This commit is contained in:
@@ -110,6 +110,8 @@ abstract class Route implements IRoute
|
|||||||
|
|
||||||
$parameters = [];
|
$parameters = [];
|
||||||
|
|
||||||
|
$url = '/' . ltrim($url, '/');
|
||||||
|
|
||||||
if (preg_match_all('/' . $regex . '/', $route, $parameters)) {
|
if (preg_match_all('/' . $regex . '/', $route, $parameters)) {
|
||||||
|
|
||||||
$urlParts = preg_split('/((\-?\/?)\{[^}]+\})/', rtrim($route, '/'));
|
$urlParts = preg_split('/((\-?\/?)\{[^}]+\})/', rtrim($route, '/'));
|
||||||
@@ -148,8 +150,6 @@ abstract class Route implements IRoute
|
|||||||
$urlRegex = preg_quote($route, '/');
|
$urlRegex = preg_quote($route, '/');
|
||||||
}
|
}
|
||||||
|
|
||||||
echo $urlRegex . '\/? | ' . $url . chr(10);
|
|
||||||
|
|
||||||
if (preg_match('/^' . $urlRegex . '\/?/', $url, $matches) > 0) {
|
if (preg_match('/^' . $urlRegex . '\/?/', $url, $matches) > 0) {
|
||||||
|
|
||||||
$values = [];
|
$values = [];
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ class RouteController extends LoadableRoute implements IControllerRoute
|
|||||||
if (strpos($name, '.') !== false) {
|
if (strpos($name, '.') !== false) {
|
||||||
$found = array_search(substr($name, strrpos($name, '.') + 1), $this->names, false);
|
$found = array_search(substr($name, strrpos($name, '.') + 1), $this->names, false);
|
||||||
if ($found !== false) {
|
if ($found !== false) {
|
||||||
$method = $found;
|
$method = (string)$found;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ use Pecee\SimpleRouter\Route\IControllerRoute;
|
|||||||
use Pecee\SimpleRouter\Route\IGroupRoute;
|
use Pecee\SimpleRouter\Route\IGroupRoute;
|
||||||
use Pecee\SimpleRouter\Route\ILoadableRoute;
|
use Pecee\SimpleRouter\Route\ILoadableRoute;
|
||||||
use Pecee\SimpleRouter\Route\IRoute;
|
use Pecee\SimpleRouter\Route\IRoute;
|
||||||
use Pecee\SimpleRouter\Route\LoadableRoute;
|
|
||||||
|
|
||||||
class Router
|
class Router
|
||||||
{
|
{
|
||||||
@@ -125,8 +124,6 @@ class Router
|
|||||||
|
|
||||||
$url = ($this->request->getRewriteUrl() !== null) ? $this->request->getRewriteUrl() : $this->request->getUri();
|
$url = ($this->request->getRewriteUrl() !== null) ? $this->request->getRewriteUrl() : $this->request->getUri();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* @var $route IRoute */
|
/* @var $route IRoute */
|
||||||
for ($i = $max; $i >= 0; $i--) {
|
for ($i = $max; $i >= 0; $i--) {
|
||||||
|
|
||||||
|
|||||||
+10
-12
@@ -10,24 +10,22 @@ class RouterUrlTest extends PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
public function testOptionalParameters()
|
public function testOptionalParameters()
|
||||||
{
|
{
|
||||||
|
TestRouter::get('/aviso/legal', 'DummyController@method1');
|
||||||
// TestRouter::get('/aviso/legal', 'DummyController@method1');
|
|
||||||
TestRouter::get('/aviso/{aviso}', 'DummyController@method1');
|
TestRouter::get('/aviso/{aviso}', 'DummyController@method1');
|
||||||
//TestRouter::get('/pagina/{pagina}', 'DummyController@method1');
|
TestRouter::get('/pagina/{pagina}', 'DummyController@method1');
|
||||||
TestRouter::get('/{pagina?}', 'DummyController@method1');
|
TestRouter::get('/{pagina?}', 'DummyController@method1');
|
||||||
|
|
||||||
//TestRouter::debugNoReset('/aviso/optional', 'get');
|
TestRouter::debugNoReset('/aviso/optional', 'get');
|
||||||
//$this->assertEquals('/aviso/{aviso}/', TestRouter::router()->getRequest()->getLoadedRoute()->getUrl());
|
$this->assertEquals('/aviso/{aviso}/', TestRouter::router()->getRequest()->getLoadedRoute()->getUrl());
|
||||||
|
|
||||||
//TestRouter::debugNoReset('/pagina/optional', 'get');
|
TestRouter::debugNoReset('/pagina/optional', 'get');
|
||||||
//$this->assertEquals('/pagina/{pagina}/', TestRouter::router()->getRequest()->getLoadedRoute()->getUrl());
|
$this->assertEquals('/pagina/{pagina}/', TestRouter::router()->getRequest()->getLoadedRoute()->getUrl());
|
||||||
|
|
||||||
//TestRouter::debugNoReset('/optional', 'get');
|
TestRouter::debugNoReset('/optional', 'get');
|
||||||
//$this->assertEquals('/{pagina?}/', TestRouter::router()->getRequest()->getLoadedRoute()->getUrl());
|
$this->assertEquals('/{pagina?}/', TestRouter::router()->getRequest()->getLoadedRoute()->getUrl());
|
||||||
|
|
||||||
// New test lines
|
TestRouter::debugNoReset('/avisolegal', 'get');
|
||||||
//TestRouter::debugNoReset('/avisolegal', 'get');
|
$this->assertNotEquals('/aviso/{aviso}/', TestRouter::router()->getRequest()->getLoadedRoute()->getUrl());
|
||||||
//$this->assertNotEquals('/aviso/{aviso}/', TestRouter::router()->getRequest()->getLoadedRoute()->getUrl());
|
|
||||||
|
|
||||||
TestRouter::debugNoReset('/avisolegal', 'get');
|
TestRouter::debugNoReset('/avisolegal', 'get');
|
||||||
$this->assertEquals('/{pagina?}/', TestRouter::router()->getRequest()->getLoadedRoute()->getUrl());
|
$this->assertEquals('/{pagina?}/', TestRouter::router()->getRequest()->getLoadedRoute()->getUrl());
|
||||||
|
|||||||
Reference in New Issue
Block a user