Skip to content

Commit 98e0676

Browse files
Merge pull request #18514 from MauricioFauth/routes
Move the routes from routes.php to the Routes class
2 parents 9d3cb68 + 053ee31 commit 98e0676

10 files changed

Lines changed: 694 additions & 340 deletions

File tree

libraries/classes/Application.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use PhpMyAdmin\Identifiers\TableName;
1919
use PhpMyAdmin\Plugins\AuthenticationPlugin;
2020
use PhpMyAdmin\Plugins\AuthenticationPluginFactory;
21+
use PhpMyAdmin\Routing\Routing;
2122
use PhpMyAdmin\SqlParser\Lexer;
2223
use PhpMyAdmin\Theme\ThemeManager;
2324
use PhpMyAdmin\Tracking\Tracker;

libraries/classes/Command/CacheWarmupCommand.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
use PhpMyAdmin\Config;
88
use PhpMyAdmin\DatabaseInterface;
9-
use PhpMyAdmin\Routing;
9+
use PhpMyAdmin\Routing\Routing;
1010
use PhpMyAdmin\Template;
1111
use PhpMyAdmin\Tests\Stubs\DbiDummy;
1212
use RecursiveDirectoryIterator;

libraries/classes/Config.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use PhpMyAdmin\Config\Settings\Server;
99
use PhpMyAdmin\Dbal\Connection;
1010
use PhpMyAdmin\Exceptions\ConfigException;
11+
use PhpMyAdmin\Routing\Routing;
1112
use PhpMyAdmin\Theme\ThemeManager;
1213
use Throwable;
1314

libraries/classes/Routing/Routes.php

Lines changed: 316 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types=1);
44

5-
namespace PhpMyAdmin;
5+
namespace PhpMyAdmin\Routing;
66

77
use FastRoute\DataGenerator\GroupCountBased as DataGeneratorGroupCountBased;
88
use FastRoute\Dispatcher;
@@ -13,7 +13,12 @@
1313
use PhpMyAdmin\Controllers\Setup\MainController;
1414
use PhpMyAdmin\Controllers\Setup\ShowConfigController;
1515
use PhpMyAdmin\Controllers\Setup\ValidateController;
16+
use PhpMyAdmin\Core;
1617
use PhpMyAdmin\Http\ServerRequest;
18+
use PhpMyAdmin\Message;
19+
use PhpMyAdmin\ResponseRenderer;
20+
use PhpMyAdmin\Sanitize;
21+
use PhpMyAdmin\Template;
1722
use Psr\Container\ContainerInterface;
1823

1924
use function __;
@@ -38,7 +43,6 @@
3843

3944
use const CACHE_DIR;
4045
use const E_USER_WARNING;
41-
use const ROOT_PATH;
4246

4347
/**
4448
* Class used to warm up the routing cache and manage routing.
@@ -47,13 +51,6 @@ class Routing
4751
{
4852
public const ROUTES_CACHE_FILE = CACHE_DIR . 'routes.cache.php';
4953

50-
public static function getDispatcher(): Dispatcher
51-
{
52-
$routes = require ROOT_PATH . 'libraries/routes.php';
53-
54-
return self::routesCachedDispatcher($routes);
55-
}
56-
5754
public static function skipCache(): bool
5855
{
5956
return ($GLOBALS['cfg']['environment'] ?? '') === 'development';
@@ -75,7 +72,7 @@ public static function canWriteCache(): bool
7572
return $canWriteFile;
7673
}
7774

78-
private static function routesCachedDispatcher(callable $routeDefinitionCallback): Dispatcher
75+
public static function getDispatcher(): Dispatcher
7976
{
8077
$skipCache = self::skipCache();
8178

@@ -89,11 +86,8 @@ private static function routesCachedDispatcher(callable $routeDefinitionCallback
8986
}
9087
}
9188

92-
$routeCollector = new RouteCollector(
93-
new RouteParserStd(),
94-
new DataGeneratorGroupCountBased(),
95-
);
96-
$routeDefinitionCallback($routeCollector);
89+
$routeCollector = new RouteCollector(new RouteParserStd(), new DataGeneratorGroupCountBased());
90+
Routes::collect($routeCollector);
9791

9892
$dispatchData = $routeCollector->getData();
9993
$canWriteCache = self::canWriteCache();

libraries/routes.php

Lines changed: 0 additions & 311 deletions
This file was deleted.

phpstan-baseline.neon

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9310,11 +9310,6 @@ parameters:
93109310
count: 1
93119311
path: test/classes/Properties/Options/OptionsPropertyGroupTest.php
93129312

9313-
-
9314-
message: "#^Call to method PHPUnit\\\\Framework\\\\Assert\\:\\:assertInstanceOf\\(\\) with 'FastRoute\\\\\\\\Dispatcher' and FastRoute\\\\Dispatcher will always evaluate to true\\.$#"
9315-
count: 4
9316-
path: test/classes/RoutingTest.php
9317-
93189313
-
93199314
message: "#^Call to method PHPUnit\\\\Framework\\\\Assert\\:\\:assertInstanceOf\\(\\) with 'PhpMyAdmin\\\\\\\\Server\\\\\\\\Plugin' and PhpMyAdmin\\\\Server\\\\Plugin will always evaluate to true\\.$#"
93209315
count: 1

psalm-baseline.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11024,7 +11024,7 @@
1102411024
<code><![CDATA['']]></code>
1102511025
</TypeDoesNotContainType>
1102611026
</file>
11027-
<file src="libraries/classes/Routing.php">
11027+
<file src="libraries/classes/Routing/Routing.php">
1102811028
<InvalidArrayOffset>
1102911029
<code><![CDATA[$GLOBALS['cfg']['environment']]]></code>
1103011030
</InvalidArrayOffset>
@@ -14597,7 +14597,7 @@
1459714597
<code>providerForTestIsUUIDSupported</code>
1459814598
</PossiblyUnusedMethod>
1459914599
</file>
14600-
<file src="test/classes/RoutingTest.php">
14600+
<file src="test/classes/Routing/RoutingTest.php">
1460114601
<PossiblyUnusedMethod>
1460214602
<code>providerForTestCleanupPathInfo</code>
1460314603
</PossiblyUnusedMethod>

test/classes/Routing/RoutesTest.php

Lines changed: 361 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22

33
declare(strict_types=1);
44

5-
namespace PhpMyAdmin\Tests;
5+
namespace PhpMyAdmin\Tests\Routing;
66

77
use FastRoute\Dispatcher;
88
use PhpMyAdmin\Controllers\HomeController;
9-
use PhpMyAdmin\Routing;
9+
use PhpMyAdmin\Routing\Routing;
10+
use PhpMyAdmin\Tests\AbstractTestCase;
1011
use PHPUnit\Framework\Attributes\CoversClass;
1112
use PHPUnit\Framework\Attributes\DataProvider;
1213

@@ -35,14 +36,12 @@ public function testGetDispatcher(): void
3536
// Valid cache file.
3637
$this->assertTrue(copy($validCacheFilename, $cacheFilename));
3738
$dispatcher = Routing::getDispatcher();
38-
$this->assertInstanceOf(Dispatcher::class, $dispatcher);
3939
$this->assertSame($expected, $dispatcher->dispatch('GET', '/'));
4040
$this->assertFileEquals($validCacheFilename, $cacheFilename);
4141

4242
// Invalid cache file.
4343
$this->assertTrue(copy($invalidCacheFilename, $cacheFilename));
4444
$dispatcher = Routing::getDispatcher();
45-
$this->assertInstanceOf(Dispatcher::class, $dispatcher);
4645
$this->assertSame($expected, $dispatcher->dispatch('GET', '/'));
4746
$this->assertFileNotEquals($invalidCacheFilename, $cacheFilename);
4847

@@ -52,14 +51,12 @@ public function testGetDispatcher(): void
5251
$this->assertFileDoesNotExist($cacheFilename);
5352

5453
$dispatcher = Routing::getDispatcher();
55-
$this->assertInstanceOf(Dispatcher::class, $dispatcher);
5654
$this->assertSame($expected, $dispatcher->dispatch('GET', '/'));
5755
$this->assertFileExists($cacheFilename);
5856

5957
// Without a cache file.
6058
$GLOBALS['cfg']['environment'] = 'development';
6159
$dispatcher = Routing::getDispatcher();
62-
$this->assertInstanceOf(Dispatcher::class, $dispatcher);
6360
$this->assertSame($expected, $dispatcher->dispatch('GET', '/'));
6461
}
6562

0 commit comments

Comments
 (0)