abstract | |
|---|---|
implements |
LaravelUi5ManifestInterface |
Base class for building the laravel.ui5 manifest fragment.
This class defines the authoritative contract for how LaravelUi5 metadata is exposed to the UI5 frontend.
Ownership vs. Contribution
The Core exclusively defines the available top-level manifest keys (see LaravelUi5ManifestKeys). The overall structure of the manifest is closed and strictly validated.
Modules may contribute data to selected sections, but may never redefine the structure or introduce new keys.
Aggregatable Sections
Only the following manifest sections allow module-level contributions:
ROUTES: Allows modules to expose additional named URLs (e.g. logout, legal pages, branding assets) that can be consumed by the UI5 frontend.
VENDOR: A free-form, vendor-owned namespace for optional or proprietary metadata. The Core does not impose any schema on this section.
All other sections are owned and fully controlled by the Core or the SDK and cannot be extended via this class.
Shell Configuration
The SHELL section is not contributed through this base class. It is exclusively managed by the SDK and populated via dedicated interfaces (e.g. Ui5ShellFragmentInterface).
This ensures a stable and predictable shell behavior across all apps.
Infrastructure Contributions
The INFRA section is likewise not contributed through this base class. It is populated by every registered module implementing Ui5InfrastructureContributorInterface and injected identically into every module's manifest — a platform fact declared once by its owner. It carries static, cross-cutting, user-invariant data only (see the interface).
Extension Mechanism
Subclasses may override the contribution hook to provide additional manifest entries for allowed sections only.
Any attempt to contribute to non-aggregatable sections or to use unknown manifest keys must result in an exception.
Rule of thumb: The Core defines structure. Modules may contribute entries. Visibility and semantics remain explicit.
| Methods | ||
|---|---|---|
public
|
__construct(Ui5RegistryInterface $registry)
|
# |
public
|
getFragment(string $module): array<string, mixed>
|
# |