[ROUTER] Add mechanism for sorting the order in which core routes are loaded
This commit is contained in:
parent
b26f3bca14
commit
e563c393f8
|
@ -56,9 +56,20 @@ class RouteLoader extends Loader
|
|||
$this->rc = new RouteCollection();
|
||||
|
||||
$route_files = glob(INSTALLDIR . '/src/Routes/*.php');
|
||||
$to_load = [];
|
||||
foreach ($route_files as $file) {
|
||||
require_once $file;
|
||||
$ns = '\\App\\Routes\\' . basename($file, '.php');
|
||||
if (defined("{$ns}::LOAD_ORDER")) {
|
||||
$to_load[$ns::LOAD_ORDER] = $ns;
|
||||
} else {
|
||||
$to_load[] = $ns;
|
||||
}
|
||||
}
|
||||
|
||||
ksort($to_load);
|
||||
|
||||
foreach ($to_load as $ns) {
|
||||
$ns::load($this);
|
||||
}
|
||||
|
||||
|
|
|
@ -38,6 +38,8 @@ use App\Core\Router\RouteLoader;
|
|||
|
||||
abstract class Attachments
|
||||
{
|
||||
const LOAD_ORDER = 20;
|
||||
|
||||
public static function load(RouteLoader $r): void
|
||||
{
|
||||
$r->connect('attachment_show', '/attachment/{id<\d+>}', [C\Attachment::class, 'attachment_show']);
|
||||
|
|
|
@ -39,6 +39,7 @@ use App\Util\Nickname;
|
|||
|
||||
abstract class GSActor
|
||||
{
|
||||
const LOAD_ORDER = 30;
|
||||
public static function load(RouteLoader $r): void
|
||||
{
|
||||
$r->connect(id: 'gsactor_view_id', uri_path: '/actor/{id<\d+>}', target: [C\GSActor::class, 'GSActorShowId']);
|
||||
|
|
|
@ -40,6 +40,8 @@ use Symfony\Bundle\FrameworkBundle\Controller\RedirectController;
|
|||
|
||||
abstract class Main
|
||||
{
|
||||
const LOAD_ORDER = 10;
|
||||
|
||||
public static function load(RouteLoader $r): void
|
||||
{
|
||||
$r->connect('login', '/login', [C\Security::class, 'login']);
|
||||
|
|
|
@ -38,6 +38,7 @@ use App\Core\Router\RouteLoader;
|
|||
|
||||
abstract class Note
|
||||
{
|
||||
const LOAD_ORDER = 40;
|
||||
public static function load(RouteLoader $r): void
|
||||
{
|
||||
$r->connect('note_view', '/note/{id<\d+>}', [C\Note::class, 'NoteShow']);
|
||||
|
|
Loading…
Reference in New Issue
Block a user