Merge pull request #167 from skipperbent/v2-development

Bugfixes
This commit is contained in:
Simon Sessingø
2016-11-21 05:07:59 +02:00
committed by GitHub
7 changed files with 71 additions and 83 deletions
+1 -1
View File
@@ -3,7 +3,7 @@ use Pecee\SimpleRouter\SimpleRouter;
function url($controller, $parameters = null, $getParams = null) function url($controller, $parameters = null, $getParams = null)
{ {
SimpleRouter::getRoute($controller, $parameters, $getParams); SimpleRouter::getUrl($controller, $parameters, $getParams);
} }
/** /**
@@ -51,27 +51,4 @@ interface ILoadableRoute extends IRoute
*/ */
public function setName($name); public function setName($name);
/**
* Get middlewares array
*
* @return array
*/
public function getMiddlewares();
/**
* Set middleware class-name
*
* @param string $middleware
* @return static
*/
public function setMiddleware($middleware);
/**
* Set middlewares array
*
* @param array $middlewares
* @return $this
*/
public function setMiddlewares(array $middlewares);
} }
+23
View File
@@ -173,4 +173,27 @@ interface IRoute
*/ */
public function toArray(); public function toArray();
/**
* Get middlewares array
*
* @return array
*/
public function getMiddlewares();
/**
* Set middleware class-name
*
* @param string $middleware
* @return static
*/
public function setMiddleware($middleware);
/**
* Set middlewares array
*
* @param array $middlewares
* @return $this
*/
public function setMiddlewares(array $middlewares);
} }
@@ -11,7 +11,6 @@ abstract class LoadableRoute extends Route implements ILoadableRoute
protected $url; protected $url;
protected $name; protected $name;
protected $middlewares = [];
/** /**
* Loads and renders middlewares-classes * Loads and renders middlewares-classes
@@ -155,22 +154,6 @@ abstract class LoadableRoute extends Route implements ILoadableRoute
return $this; return $this;
} }
/**
* Export route settings to array so they can be merged with another route.
*
* @return array
*/
public function toArray()
{
$values = [];
if (count($this->middlewares) > 0) {
$values['middleware'] = $this->middlewares;
}
return array_merge(parent::toArray(), $values);
}
/** /**
* Merge with information from another route. * Merge with information from another route.
* *
@@ -192,48 +175,9 @@ abstract class LoadableRoute extends Route implements ILoadableRoute
$this->setUrl($values['prefix'] . $this->getUrl()); $this->setUrl($values['prefix'] . $this->getUrl());
} }
// Push middleware if multiple
if (isset($values['middleware'])) {
$this->setMiddlewares(array_merge((array)$values['middleware'], $this->middlewares));
}
parent::setSettings($values, $merge); parent::setSettings($values, $merge);
return $this; return $this;
} }
/**
* Set middleware class-name
*
* @param string $middleware
* @return static
*/
public function setMiddleware($middleware)
{
$this->middlewares[] = $middleware;
return $this;
}
/**
* Set middlewares array
*
* @param array $middlewares
* @return $this
*/
public function setMiddlewares(array $middlewares)
{
$this->middlewares = $middlewares;
return $this;
}
/**
* @return string|array
*/
public function getMiddlewares()
{
return $this->middlewares;
}
} }
+44
View File
@@ -36,6 +36,7 @@ abstract class Route implements IRoute
protected $requestMethods = []; protected $requestMethods = [];
protected $where = []; protected $where = [];
protected $parameters = []; protected $parameters = [];
protected $middlewares = [];
public function renderRoute(Request $request) public function renderRoute(Request $request)
{ {
@@ -380,6 +381,10 @@ abstract class Route implements IRoute
$values['parameters'] = $this->parameters; $values['parameters'] = $this->parameters;
} }
if (count($this->middlewares) > 0) {
$values['middleware'] = $this->middlewares;
}
return $values; return $values;
} }
@@ -408,6 +413,11 @@ abstract class Route implements IRoute
$this->setParameters(array_merge($this->parameters, (array)$values['parameters'])); $this->setParameters(array_merge($this->parameters, (array)$values['parameters']));
} }
// Push middleware if multiple
if (isset($values['middleware'])) {
$this->setMiddlewares(array_merge((array)$values['middleware'], $this->middlewares));
}
return $this; return $this;
} }
@@ -470,4 +480,38 @@ abstract class Route implements IRoute
return $this; return $this;
} }
/**
* Set middleware class-name
*
* @param string $middleware
* @return static
*/
public function setMiddleware($middleware)
{
$this->middlewares[] = $middleware;
return $this;
}
/**
* Set middlewares array
*
* @param array $middlewares
* @return $this
*/
public function setMiddlewares(array $middlewares)
{
$this->middlewares = $middlewares;
return $this;
}
/**
* @return string|array
*/
public function getMiddlewares()
{
return $this->middlewares;
}
} }
+2 -2
View File
@@ -87,8 +87,8 @@ class GroupTest extends PHPUnit_Framework_TestCase
SimpleRouter::start(); SimpleRouter::start();
$this->assertEquals('/my/fancy/url/1/', SimpleRouter::getRoute('fancy1')); $this->assertEquals('/my/fancy/url/1/', SimpleRouter::getUrl('fancy1'));
$this->assertEquals('/my/fancy/url/2/', SimpleRouter::getRoute('fancy2')); $this->assertEquals('/my/fancy/url/2/', SimpleRouter::getUrl('fancy2'));
} }
+1 -1
View File
@@ -11,7 +11,7 @@ class RouterUrlTest extends PHPUnit_Framework_TestCase
protected $result = false; protected $result = false;
protected function getUrl($name = null, $parameters = null, array $getParams = []) { protected function getUrl($name = null, $parameters = null, array $getParams = []) {
return SimpleRouter::getRoute($name, $parameters, $getParams); return SimpleRouter::getUrl($name, $parameters, $getParams);
} }
public function testUrls() public function testUrls()