mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-07-11 00:03:59 +00:00
Development
- Fixed issue causing default-namespace to add duplicate namespace when using type-hints (issue: #561). - Fixed phpstan issues. - Tests: Fixed TestRouter not resetting namespace upon reset. - Tests: Added NSController (namespace controller) class. - Tests: added test for class hint + default namespace case. - Composer: added phpstan support + configuration. - Composer: updated phpunit version.
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace Pecee\SimpleRouter\Route;
|
||||
|
||||
interface IControllerRoute extends IRoute
|
||||
interface IControllerRoute extends ILoadableRoute
|
||||
{
|
||||
/**
|
||||
* Get controller class-name
|
||||
|
||||
@@ -67,7 +67,7 @@ abstract class Route implements IRoute
|
||||
|
||||
/* Filter parameters with null-value */
|
||||
if ($this->filterEmptyParams === true) {
|
||||
$parameters = array_filter($parameters, static function ($var) {
|
||||
$parameters = array_filter($parameters, static function ($var): bool {
|
||||
return ($var !== null);
|
||||
});
|
||||
}
|
||||
@@ -82,6 +82,7 @@ abstract class Route implements IRoute
|
||||
}
|
||||
|
||||
/* When the callback is a function */
|
||||
|
||||
return $router->getClassLoader()->loadClosure($callback, $parameters);
|
||||
}
|
||||
|
||||
@@ -280,7 +281,7 @@ abstract class Route implements IRoute
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string|callable
|
||||
* @return string|callable|null
|
||||
*/
|
||||
public function getCallback()
|
||||
{
|
||||
@@ -337,6 +338,11 @@ abstract class Route implements IRoute
|
||||
*/
|
||||
public function setNamespace(string $namespace): IRoute
|
||||
{
|
||||
// Do not set namespace when class-hinting is used
|
||||
if (is_array($this->callback) === true) {
|
||||
return $this;
|
||||
}
|
||||
|
||||
$ns = $this->getNamespace();
|
||||
|
||||
if ($ns !== null) {
|
||||
|
||||
@@ -52,7 +52,7 @@ class RouteController extends LoadableRoute implements IControllerRoute
|
||||
public function findUrl(?string $method = null, $parameters = null, ?string $name = null): string
|
||||
{
|
||||
if (strpos($name, '.') !== false) {
|
||||
$found = array_search(substr($name, strrpos($name, '.') + 1), $this->names, false);
|
||||
$found = array_search(substr($name, strrpos($name, '.') + 1), $this->names, true);
|
||||
if ($found !== false) {
|
||||
$method = (string)$found;
|
||||
}
|
||||
@@ -67,7 +67,7 @@ class RouteController extends LoadableRoute implements IControllerRoute
|
||||
foreach (Request::$requestTypes as $requestType) {
|
||||
|
||||
if (stripos($method, $requestType) === 0) {
|
||||
$method = (string)substr($method, strlen($requestType));
|
||||
$method = substr($method, strlen($requestType));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ class RouteResource extends LoadableRoute implements IControllerRoute
|
||||
|
||||
/* Remove method/type */
|
||||
if (strpos($name, '.') !== false) {
|
||||
$name = (string)substr($name, 0, strrpos($name, '.'));
|
||||
$name = substr($name, 0, strrpos($name, '.'));
|
||||
}
|
||||
|
||||
return (strtolower($this->name) === strtolower($name));
|
||||
@@ -68,7 +68,7 @@ class RouteResource extends LoadableRoute implements IControllerRoute
|
||||
*/
|
||||
public function findUrl(?string $method = null, $parameters = null, ?string $name = null): string
|
||||
{
|
||||
$url = array_search($name, $this->names, false);
|
||||
$url = array_search($name, $this->names, true);
|
||||
if ($url !== false) {
|
||||
return rtrim($this->url . $this->urls[$url], '/') . '/';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user