Interface LaravelUi5\Core\Ui5\Capabilities\Ui5InfrastructureContributorInterface

Allows a module to publish static, cross-cutting facts into the laravel.ui5/infra/{key} manifest node.

Where {@see Ui5ShellFragmentInterface} contributes the global Shell layer, this interface contributes platform facts that the client needs regardless of which app it loaded: a logout-route handle, the slot catalog, capability flags. The contribution is namespaced by the module's own {@see getInfrastructureKey()} (e.g. core, auth) and is injected identically into every module's manifest — so a platform fact is declared once, by its owner, and read the same way from any app.

Checked by {@see \LaravelUi5\Core\Ui5\AbstractManifest} via instanceof, exactly as the Shell fragment is. Implementing this interface is the gate to contribute; the {@see \LaravelUi5\Core\Ui5\Contracts\Ui5Infrastructure} marker (auto-registration) is not a precondition, though contributors are infrastructure by nature. "Infrastructure" in the name denotes the target node, not a required pedigree.

Contract — static, user-invariant facts only.

The infra node rides into a cacheable manifest that is shared across users. Contributions therefore MUST be the same for every user and every request:

  • DO return route handles, catalogs, capability flags, version markers.
  • MAY read global state — the registry (passed in), global Laravel state such as named routes.
  • MUST NOT return per-user / per-request data (e.g. the logged-in user's name). Per-user identity belongs to the principal/Shell channel, never here — otherwise every module's manifest becomes per-user.
Methods