Ui5Dashboard
Introduction
The Ui5Dashboard is a high-level UI artifact within your Laravel UI5 app. It represents a modular overview page designed to embed multiple tiles, cards, KPIs, or charts — providing users with a centralized starting point for insights and navigation.
Each dashboard consists of a metadata class and a corresponding Blade template. It is registered with the LaravelUi5 module system and rendered within a UI5 shell or navigation route.
Conceptual Overview
Purpose
Dashboards are the top layer in your UI5 app’s visual hierarchy. They group and orchestrate content such as:
- Tiles (quick access or status)
- Cards (KPI previews, lists, charts)
- KPIs (value indicators)
- Reports (access points)
The ui5:dashboard command creates the necessary class and template to define a dashboard in a fully encapsulated way.
Structure
- A PHP class implementing
Ui5DashboardInterface - A Blade view that defines the visual layout of the dashboard
- Optional integration with cards, tiles, and KPIs via partials, or service calls
Lifecycle
- Dashboard is instantiated and returned by a
Ui5Module - UI5 loads the dashboard using the
getSlug()route - The Blade template is rendered server-side and embedded via a
sap.ui.core.mvc.View - Child elements (cards, tiles, etc.) are loaded inside the layout
How to Generate
Run the following:
php artisan ui5:dashboard Sales/ExecutiveOverviewThis creates a dashboard named ExecutiveOverview inside the Sales app module.
Options
| Option | Default | Description |
|---|---|---|
name (argument) | (required) | Format: {AppName}/{DashboardName} |
--php-ns-prefix | Pragmatiqu | PHP namespace prefix |
--js-ns-prefix | io.pragmatiqu | JS namespace for frontend integration |
5. Output
The following structure is created for Sales/ExecutiveOverview:
ui5/
└── Sales/
├── src/
│ └── Dashboards/
│ └── ExecutiveOverview.php
└── resources/
└── ui5/
└── dashboards/
└── executive-overview.blade.phpArtifact Roles
ExecutiveOverview.php
- Implements
Ui5DashboardInterface - Defines title, description, JS namespace, and URL key
- Points to the Blade template path
executive-overview.blade.php
- Defines the layout for the dashboard UI
- Can include grid layouts, tiles, cards, components, or custom content
- Fully server-rendered with access to Laravel services and helpers
Integration
Dashboards are standalone UI containers and do not need to be registered within a Ui5Module. Instead, they are registered globally via the dashboards key in your config/ui5.php configuration file:
return [
'dashboards' => [
'executive-overview' => \Pragmatiqu\Sales\Dashboards\ExecutiveOverview::class,
],
];The key (
executive-overview) must match thegetSlug()returned by the dashboard class. This determines the frontend route.
Once registered, the dashboard can be accessed under:
/ui5/dashboards/executive-overviewDashboards are rendered in full-screen or tile-like containers and can include nested UI5 artifacts (e.g., cards, tiles, reports) via standard Blade composition.
Best Practices
- Use dashboards to group related content from the same domain
- Follow a consistent layout structure (cards left, tiles right, KPIs top, etc.)
- Pass lightweight data from the controller; fetch heavy data via cards/providers
- Avoid business logic in the Blade view — delegate to tiles, cards, or KPIs
- Use the dashboard as the default route for app modules where applicable