diff --git a/demo-project/app/helpers.php b/demo-project/app/helpers.php index eba2200..8b75ffc 100644 --- a/demo-project/app/helpers.php +++ b/demo-project/app/helpers.php @@ -3,7 +3,7 @@ use Pecee\SimpleRouter\SimpleRouter; function url($controller, $parameters = null, $getParams = null) { - SimpleRouter::getRoute($controller, $parameters, $getParams); + SimpleRouter::getUrl($controller, $parameters, $getParams); } /** diff --git a/src/Pecee/SimpleRouter/Route/ILoadableRoute.php b/src/Pecee/SimpleRouter/Route/ILoadableRoute.php index f4e163d..638438c 100644 --- a/src/Pecee/SimpleRouter/Route/ILoadableRoute.php +++ b/src/Pecee/SimpleRouter/Route/ILoadableRoute.php @@ -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); - } \ No newline at end of file diff --git a/src/Pecee/SimpleRouter/Route/IRoute.php b/src/Pecee/SimpleRouter/Route/IRoute.php index 538d218..86b2dc5 100644 --- a/src/Pecee/SimpleRouter/Route/IRoute.php +++ b/src/Pecee/SimpleRouter/Route/IRoute.php @@ -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); + } \ No newline at end of file diff --git a/src/Pecee/SimpleRouter/Route/LoadableRoute.php b/src/Pecee/SimpleRouter/Route/LoadableRoute.php index 4321a2d..4d21b52 100644 --- a/src/Pecee/SimpleRouter/Route/LoadableRoute.php +++ b/src/Pecee/SimpleRouter/Route/LoadableRoute.php @@ -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; - } - } \ No newline at end of file diff --git a/src/Pecee/SimpleRouter/Route/Route.php b/src/Pecee/SimpleRouter/Route/Route.php index a9db7bc..0b9ac87 100644 --- a/src/Pecee/SimpleRouter/Route/Route.php +++ b/src/Pecee/SimpleRouter/Route/Route.php @@ -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; + } + } \ No newline at end of file diff --git a/test/GroupTest.php b/test/GroupTest.php index 581b2b2..cf6f3ba 100644 --- a/test/GroupTest.php +++ b/test/GroupTest.php @@ -87,8 +87,8 @@ class GroupTest extends PHPUnit_Framework_TestCase SimpleRouter::start(); - $this->assertEquals('/my/fancy/url/1/', SimpleRouter::getRoute('fancy1')); - $this->assertEquals('/my/fancy/url/2/', SimpleRouter::getRoute('fancy2')); + $this->assertEquals('/my/fancy/url/1/', SimpleRouter::getUrl('fancy1')); + $this->assertEquals('/my/fancy/url/2/', SimpleRouter::getUrl('fancy2')); } diff --git a/test/RouterUrlTest.php b/test/RouterUrlTest.php index 69766a9..3ab345e 100644 --- a/test/RouterUrlTest.php +++ b/test/RouterUrlTest.php @@ -11,7 +11,7 @@ class RouterUrlTest extends PHPUnit_Framework_TestCase protected $result = false; protected function getUrl($name = null, $parameters = null, array $getParams = []) { - return SimpleRouter::getRoute($name, $parameters, $getParams); + return SimpleRouter::getUrl($name, $parameters, $getParams); } public function testUrls()