Compare commits

...

11 Commits

Author SHA1 Message Date
Simon Sessingø 0df469184c Merge pull request #22 from skipperbent/development
[BUGFIX] Fixed Exceptions due to route null value.
2015-10-30 02:28:40 +01:00
Simon Sessingø 649ed28a91 [BUGFIX] Fixed Exceptions due to route null value. 2015-10-30 02:27:44 +01:00
Simon Sessingø 5cb7086e96 Merge pull request #21 from skipperbent/development
Development
2015-10-28 05:04:45 +01:00
Simon Sessingø a2edc1504c [BUGFIX] Fixed regular expression matching after last release. 2015-10-28 05:04:11 +01:00
Simon Sessingø d31cda8e70 Merge pull request #20 from skipperbent/master
Latest master
2015-10-27 17:49:08 +01:00
Simon Sessingø 921f050a31 Update README.md 2015-10-27 17:48:35 +01:00
Simon Sessingø dcbf59b305 Merge pull request #19 from skipperbent/development
Development
2015-10-27 17:46:10 +01:00
Simon Sessingø bc16388613 [OPTIMISATION] Optimised middleware loading and routes. 2015-10-27 17:35:56 +01:00
Simon Sessingø d3ed3a61b5 [BUGFIX] Middlewares are no longer loaded on invalid routes 2015-10-27 16:42:39 +01:00
Simon Sessingø 969b64650e Merge pull request #18 from skipperbent/development
[OPTIMISATION] Optimised router handling - router will now use the or…
2015-10-27 14:02:57 +01:00
Simon Sessingø c2cf2334e7 [OPTIMISATION] Optimised router handling - router will now use the order provided when loading routes. 2015-10-27 14:01:19 +01:00
6 changed files with 19 additions and 23 deletions
+2 -2
View File
@@ -1,5 +1,5 @@
# Simple PHP router
Simple, fast PHP router that is easy to get integrated and in almost any project. Heavily inspired by the Laravel router.
Simple, fast and yet powerful PHP router that is easy to get integrated and in any project. Heavily inspired by the Laravel router.
## Installation
Add the latest version pf Simple PHP Router to your ```composer.json```
@@ -33,7 +33,7 @@ Add the latest version pf Simple PHP Router to your ```composer.json```
- Global Constraints
- Sub-Domain Routing
- Required parameters
- Optional parameters
## Initialising the router
+3 -10
View File
@@ -100,14 +100,6 @@ class RouterBase {
// Loop through each route-request
$this->processRoutes($this->routes);
// Make sure the urls is in the right order when comparing
usort($this->controllerUrlMap, function($a, $b) {
if(stripos($b->getUrl(), '{') !== false) {
return $a->getUrl();
}
return strcmp($b->getUrl(), $a->getUrl());
});
$routeNotAllowed = false;
/* @var $route RouterEntry */
@@ -124,6 +116,7 @@ class RouterBase {
$routeNotAllowed = false;
$this->loadedRoute = $routeMatch;
$routeMatch->loadMiddleware($this->request);
$routeMatch->renderRoute($this->request);
break;
}
@@ -260,7 +253,7 @@ class RouterBase {
throw new \InvalidArgumentException('Invalid type for getParams. Must be array or null');
}
if($controller === null && $parameters === null) {
if($controller === null && $parameters === null && $this->loadedRoute !== null) {
return $this->processUrl($this->loadedRoute, null, $getParams);
}
@@ -302,7 +295,7 @@ class RouterBase {
$method = $tmp[1];
}
if($controller === $c) {
if($controller === $c && $route !== null) {
return $this->processUrl($route, $method, $parameters, $getParams);
}
}
+3 -5
View File
@@ -179,9 +179,9 @@ abstract class RouterEntry {
public function getMergeableSettings() {
$settings = $this->settings;
if(isset($settings['middleware'])) {
/*if(isset($settings['middleware'])) {
unset($settings['middleware']);
}
}*/
if(isset($settings['prefix'])) {
unset($settings['prefix']);
@@ -243,7 +243,7 @@ abstract class RouterEntry {
return new $name();
}
protected function loadMiddleware(Request $request) {
public function loadMiddleware(Request $request) {
if($this->getMiddleware()) {
$middleware = $this->loadClass($this->getMiddleware());
if (!($middleware instanceof Middleware)) {
@@ -256,8 +256,6 @@ abstract class RouterEntry {
}
public function renderRoute(Request $request) {
// Load middleware
$this->loadMiddleware($request);
if(is_object($this->getCallback()) && is_callable($this->getCallback())) {
+8 -2
View File
@@ -10,7 +10,7 @@ class RouterGroup extends RouterEntry {
parent::__construct();
}
public function matchRoute(Request $request) {
public function renderRoute(Request $request) {
// Check if request method is allowed
if(strtolower($request->getUri()) == strtolower($this->prefix) || stripos($request->getUri(), $this->prefix) === 0) {
@@ -29,11 +29,17 @@ class RouterGroup extends RouterEntry {
throw new RouterException('Method not allowed');
}
return $this;
$this->loadMiddleware($request);
return parent::renderRoute($request);
}
// No match here, move on...
return null;
}
public function matchRoute(Request $request) {
return null;
}
}
@@ -20,9 +20,6 @@ class RouterResource extends RouterEntry {
}
public function renderRoute(Request $request) {
// Load middleware
$this->loadMiddleware($request);
if(is_object($this->getCallback()) && is_callable($this->getCallback())) {
// When the callback is a function
call_user_func_array($this->getCallback(), $this->getParameters());
+3 -1
View File
@@ -61,8 +61,10 @@ class RouterRoute extends RouterEntry {
} else {
$matches = (count(explode('/', rtrim($url, '/'))) == count(explode('/', rtrim($route, '/'))));
$url = explode('/', $url);
$route = explode('/', $route);
$route = explode('/', rtrim($route, '/'));
$parameters = array();