- Moved middleware stuff back to Route class.
- Fixed Tests not working due to invalid method.
- Updated depricated method-calls in demo-project.
This commit is contained in:
Simon Sessingø
2016-11-21 04:06:45 +01:00
parent efe5767220
commit dfd32c0904
7 changed files with 71 additions and 83 deletions

View File

@@ -51,27 +51,4 @@ interface ILoadableRoute extends IRoute
*/
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);
}

View File

@@ -173,4 +173,27 @@ interface IRoute
*/
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);
}

View File

@@ -11,7 +11,6 @@ abstract class LoadableRoute extends Route implements ILoadableRoute
protected $url;
protected $name;
protected $middlewares = [];
/**
* Loads and renders middlewares-classes
@@ -155,22 +154,6 @@ abstract class LoadableRoute extends Route implements ILoadableRoute
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.
*
@@ -192,48 +175,9 @@ abstract class LoadableRoute extends Route implements ILoadableRoute
$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);
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;
}
}

View File

@@ -36,6 +36,7 @@ abstract class Route implements IRoute
protected $requestMethods = [];
protected $where = [];
protected $parameters = [];
protected $middlewares = [];
public function renderRoute(Request $request)
{
@@ -380,6 +381,10 @@ abstract class Route implements IRoute
$values['parameters'] = $this->parameters;
}
if (count($this->middlewares) > 0) {
$values['middleware'] = $this->middlewares;
}
return $values;
}
@@ -408,6 +413,11 @@ abstract class Route implements IRoute
$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;
}
@@ -470,4 +480,38 @@ abstract class Route implements IRoute
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;
}
}