Merge pull request #49 from skipperbent/development

Development
This commit is contained in:
Simon Sessingø
2015-12-11 18:11:03 +01:00
8 changed files with 33 additions and 24 deletions
+1 -1
View File
@@ -26,7 +26,7 @@ class Response {
} }
public function refresh() { public function refresh() {
$this->redirect(url()); $this->redirect(Request::getInstance()->getUri());
} }
/** /**
+19 -10
View File
@@ -1,10 +1,8 @@
<?php <?php
namespace Pecee\SimpleRouter; namespace Pecee\SimpleRouter;
use Pecee\ArrayUtil;
use Pecee\Http\Middleware\BaseCsrfVerifier; use Pecee\Http\Middleware\BaseCsrfVerifier;
use Pecee\Http\Request; use Pecee\Http\Request;
use Pecee\Url;
class RouterBase { class RouterBase {
@@ -42,8 +40,8 @@ class RouterBase {
// Loop through each route-request // Loop through each route-request
$activeGroup = null; $activeGroup = null;
$routesCount = count($routes); $routesCount = count($routes);
$mergedSettings = array();
/* @var $route RouterEntry */ /* @var $route RouterEntry */
for($i = 0; $i < $routesCount; $i++) { for($i = 0; $i < $routesCount; $i++) {
@@ -123,7 +121,7 @@ class RouterBase {
$routeMatch = $route->matchRoute($this->request); $routeMatch = $route->matchRoute($this->request);
if($routeMatch && !($routeMatch instanceof RouterGroup)) { if($routeMatch) {
if(count($route->getRequestMethods()) && !in_array($this->request->getMethod(), $route->getRequestMethods())) { if(count($route->getRequestMethods()) && !in_array($this->request->getMethod(), $route->getRequestMethods())) {
$routeNotAllowed = true; $routeNotAllowed = true;
@@ -132,9 +130,9 @@ class RouterBase {
$routeNotAllowed = false; $routeNotAllowed = false;
$this->loadedRoute = $routeMatch; $this->loadedRoute = $route;
$routeMatch->loadMiddleware($this->request); $route->loadMiddleware($this->request);
$routeMatch->renderRoute($this->request); $route->renderRoute($this->request);
break; break;
} }
} }
@@ -221,6 +219,15 @@ class RouterBase {
return $this; return $this;
} }
protected function getParamsToArray($query) {
$output = array();
if($query[0] === '?') {
$query = substr($query, 1);
}
parse_str($query, $output);
return $output;
}
protected function processUrl($route, $method = null, $parameters = null, $getParams = null) { protected function processUrl($route, $method = null, $parameters = null, $getParams = null) {
$url = '/' . trim($route->getUrl(), '/'); $url = '/' . trim($route->getUrl(), '/');
@@ -254,7 +261,7 @@ class RouterBase {
$url = rtrim($url, '/') . '/'; $url = rtrim($url, '/') . '/';
if($getParams !== null && count($getParams)) { if($getParams !== null && count($getParams)) {
$url .= '?'.Url::arrayToParams($getParams); $url .= '?' . $this->getParamsToArray($getParams);
} }
return $url; return $url;
@@ -328,13 +335,15 @@ class RouterBase {
$url = array($controller); $url = array($controller);
if(is_array($parameters)) { if(is_array($parameters)) {
ArrayUtil::append($url, $parameters); foreach($parameters as $key => $value) {
array_push($url,$value);
}
} }
$url = '/' . trim(join('/', $url), '/') . '/'; $url = '/' . trim(join('/', $url), '/') . '/';
if(is_array($getParams)) { if(is_array($getParams)) {
$url .= '?' . Url::arrayToParams($getParams); $url .= '?' . $this->getParamsToArray($getParams);
} }
return $url; return $url;
+1 -1
View File
@@ -63,7 +63,7 @@ class RouterController extends RouterEntry {
// Set callback // Set callback
$this->setCallback($this->controller . '@' . $this->method); $this->setCallback($this->controller . '@' . $this->method);
return $this; return true;
} }
} }
return null; return null;
+3 -3
View File
@@ -304,7 +304,7 @@ abstract class RouterEntry {
$max = count($parameterNames); $max = count($parameterNames);
if(count($max)) { if($max) {
for($i = 0; $i < $max; $i++) { for($i = 0; $i < $max; $i++) {
$name = $parameterNames[$i]; $name = $parameterNames[$i];
$parameterValue = (isset($parameterValues[$name['name']]) && !empty($parameterValues[$name['name']])) ? $parameterValues[$name['name']] : null; $parameterValue = (isset($parameterValues[$name['name']]) && !empty($parameterValues[$name['name']])) ? $parameterValues[$name['name']] : null;
@@ -332,7 +332,7 @@ abstract class RouterEntry {
throw new RouterException($middleware . ' must be instance of Middleware'); throw new RouterException($middleware . ' must be instance of Middleware');
} }
/* @var $class Middleware */ /* @var $class IMiddleware */
$middleware->handle($request); $middleware->handle($request);
} }
} else { } else {
@@ -341,7 +341,7 @@ abstract class RouterEntry {
throw new RouterException($this->getMiddleware() . ' must be instance of Middleware'); throw new RouterException($this->getMiddleware() . ' must be instance of Middleware');
} }
/* @var $class Middleware */ /* @var $class IMiddleware */
$middleware->handle($request); $middleware->handle($request);
} }
} }
+4 -4
View File
@@ -10,7 +10,7 @@ class RouterGroup extends RouterEntry {
parent::__construct(); parent::__construct();
} }
protected function matchDomain() { protected function matchDomain(Request $request) {
if($this->domain !== null) { if($this->domain !== null) {
if(is_array($this->domain)) { if(is_array($this->domain)) {
@@ -20,7 +20,7 @@ class RouterGroup extends RouterEntry {
for($i = 0; $i < $max; $i++) { for($i = 0; $i < $max; $i++) {
$domain = $this->domain[$i]; $domain = $this->domain[$i];
$parameters = $this->parseParameters($domain, request()->getHost(), '[^.]*'); $parameters = $this->parseParameters($domain, $request->getHost(), '[^.]*');
if($parameters !== null) { if($parameters !== null) {
$this->parameters = $parameters; $this->parameters = $parameters;
@@ -31,7 +31,7 @@ class RouterGroup extends RouterEntry {
return null; return null;
} }
$parameters = $this->parseParameters($this->domain, request()->getHost(), '[^.]*'); $parameters = $this->parseParameters($this->domain, $request->getHost(), '[^.]*');
if ($parameters !== null) { if ($parameters !== null) {
$this->parameters = $parameters; $this->parameters = $parameters;
@@ -60,7 +60,7 @@ class RouterGroup extends RouterEntry {
throw new RouterException('Method not allowed'); throw new RouterException('Method not allowed');
} }
if($this->matchDomain() === null) { if($this->matchDomain($request) === null) {
return null; return null;
} }
+1 -1
View File
@@ -45,7 +45,7 @@ class RouterResource extends RouterEntry {
protected function call($method, $parameters) { protected function call($method, $parameters) {
$this->setCallback($this->controller . '@' . $method); $this->setCallback($this->controller . '@' . $method);
$this->parameters = $parameters; $this->parameters = $parameters;
return $this; return true;
} }
public function matchRoute(Request $request) { public function matchRoute(Request $request) {
+3 -3
View File
@@ -26,9 +26,9 @@ class RouterRoute extends RouterEntry {
// Match on custom defined regular expression // Match on custom defined regular expression
if($this->regexMatch) { if($this->regexMatch) {
$parameters = array(); $parameters = array();
if(preg_match('/('.$this->regexMatch.')/is', request()->getHost() . $url, $parameters)) { if(preg_match('/('.$this->regexMatch.')/is', $request->getHost() . $url, $parameters)) {
$this->parameters = (!is_array($parameters[0]) ? array($parameters[0]) : $parameters[0]); $this->parameters = (!is_array($parameters[0]) ? array($parameters[0]) : $parameters[0]);
return $this; return true;
} }
return null; return null;
} }
@@ -46,7 +46,7 @@ class RouterRoute extends RouterEntry {
$this->parameters = $parameters; $this->parameters = $parameters;
} }
return $this; return true;
} }
return null; return null;
+1 -1
View File
@@ -19,7 +19,7 @@ class SimpleRouter {
* @throws RouterException * @throws RouterException
*/ */
public static function start($defaultNamespace = null) { public static function start($defaultNamespace = null) {
$router = RouterBase::GetInstance(); $router = RouterBase::getInstance();
$router->setDefaultNamespace($defaultNamespace); $router->setDefaultNamespace($defaultNamespace);
$router->routeRequest(); $router->routeRequest();
} }