Skip to content

Allow packages to declare global middleware in module.php #79

@michalbiarda

Description

@michalbiarda

Problem

Global middleware like PageCacheMiddleware, SessionMiddleware, and LayoutMiddleware are hardcoded in GlobalMiddlewareResolver::DEFAULT_BUILT_INS inside marko/core. This means adding or reordering built-in middleware requires touching the core resolver — packages have no way to self-register their middleware.

Proposed Solution

Add a globalMiddleware key to module.php that accepts class strings or ['class' => ..., 'priority' => N] entries. GlobalMiddlewareResolver collects and sorts all declarations from loaded modules by priority (lower = earlier), deduplicating by source (app > modules > vendor). Built-in declarations are removed from the core and moved to their respective packages.

Alternatives Considered

No response

Package

core

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions