Removed router merging.

This commit is contained in:
flash 2023-09-11 20:08:15 +00:00
parent 3dbf0fa85f
commit 405724ec3f
6 changed files with 9 additions and 58 deletions

View file

@ -1 +1 @@
0.2309.111944 0.2309.112008

View file

@ -1,7 +1,7 @@
<?php <?php
// HttpFx.php // HttpFx.php
// Created: 2022-02-15 // Created: 2022-02-15
// Updated: 2023-09-07 // Updated: 2023-09-11
namespace Index\Http; namespace Index\Http;
@ -207,16 +207,6 @@ class HttpFx implements IRouter {
$this->router->use($path, $handler); $this->router->use($path, $handler);
} }
/**
* Merges another router with this one with possibility of changing its root.
*
* @param string $path Base path to use.
* @param Router $router Router object to inherit from.
*/
public function merge(string $path, Router $router): void {
$this->router->merge($path, $router);
}
/** /**
* Adds a new route. * Adds a new route.
* *

View file

@ -1,7 +1,7 @@
<?php <?php
// IRouter.php // IRouter.php
// Created: 2023-01-06 // Created: 2023-01-06
// Updated: 2023-09-06 // Updated: 2023-09-11
namespace Index\Routing; namespace Index\Routing;
@ -14,14 +14,6 @@ interface IRouter {
*/ */
public function use(string $path, callable $handler): void; public function use(string $path, callable $handler): void;
/**
* Merges another router with this one with possibility of changing its root.
*
* @param string $path Base path to use.
* @param Router $router Router object to inherit from.
*/
public function merge(string $path, Router $router): void;
/** /**
* Adds a new route. * Adds a new route.
* *

View file

@ -1,7 +1,7 @@
<?php <?php
// RouteInfo.php // RouteInfo.php
// Created: 2022-01-20 // Created: 2022-01-20
// Updated: 2022-02-27 // Updated: 2023-09-11
namespace Index\Routing; namespace Index\Routing;
@ -33,22 +33,6 @@ class RouteInfo {
return $child; return $child;
} }
/**
* @internal
*/
public function mergeRoute(string $path, RouteInfo $route): void {
if($path === '') {
$this->children = array_merge($this->children, $route->children);
$this->methods = array_merge($this->methods, $route->methods);
$this->middlewares = array_merge($this->middlewares, $route->middlewares);
if($this->dynamicChild === null)
$this->dynamicChild = $route->dynamicChild;
return;
}
$this->getChild($path, $next)->mergeRoute($next, $route);
}
/** /**
* @internal * @internal
*/ */

View file

@ -1,7 +1,7 @@
<?php <?php
// Router.php // Router.php
// Created: 2022-01-18 // Created: 2022-01-18
// Updated: 2023-09-06 // Updated: 2023-09-11
namespace Index\Routing; namespace Index\Routing;
@ -33,7 +33,7 @@ class Router implements IRouter {
if($method === 'head') if($method === 'head')
$method = 'get'; $method = 'get';
return $this->route->resolve($method, trim($path, '/'), $args); return $this->route->resolve($method, $path, $args);
} }
/** /**
@ -43,17 +43,7 @@ class Router implements IRouter {
* @param callable $handler Middleware function. * @param callable $handler Middleware function.
*/ */
public function use(string $path, callable $handler): void { public function use(string $path, callable $handler): void {
$this->route->addMiddleware(trim($path, '/'), $handler); $this->route->addMiddleware($path, $handler);
}
/**
* Merges another router with this one with possibility of changing its root.
*
* @param string $path Base path to use.
* @param Router $router Router object to inherit from.
*/
public function merge(string $path, Router $router): void {
$this->route->mergeRoute(trim($path, '/'), $router->route);
} }
/** /**
@ -67,7 +57,7 @@ class Router implements IRouter {
if(empty($method)) if(empty($method))
throw new InvalidArgumentException('$method may not be empty.'); throw new InvalidArgumentException('$method may not be empty.');
$this->route->addMethod($method, trim($path, '/'), $handler); $this->route->addMethod($method, $path, $handler);
} }
/** /**

View file

@ -1,7 +1,7 @@
<?php <?php
// RouterTest.php // RouterTest.php
// Created: 2022-01-20 // Created: 2022-01-20
// Updated: 2023-09-08 // Updated: 2023-09-11
declare(strict_types=1); declare(strict_types=1);
@ -89,11 +89,6 @@ final class RouterTest extends TestCase {
}); });
$this->assertEquals(['meow', 'rules page'], $router2->resolve('GET', '/rules')->runAll()); $this->assertEquals(['meow', 'rules page'], $router2->resolve('GET', '/rules')->runAll());
$router1->merge('/info', $router2);
$this->assertEquals(['warioware', 'meow', 'rules page'], $router1->resolve('GET', '/info/rules')->runAll());
$this->assertEquals(['meow', 'numeric test'], $router2->resolve('GET', '/25252')->runAll()); $this->assertEquals(['meow', 'numeric test'], $router2->resolve('GET', '/25252')->runAll());
$router3 = new Router; $router3 = new Router;