Skip to content

Installation ​

LaravelUi5 Core is the foundation layer for running SAP OpenUI5 frontends on a Laravel backend. It provides the artifact registry, UI5 + OData routing, CSRF handling, source strategies, and the php artisan ui5:* scaffolding commands.

Requirements ​

  • PHP 8.4 or higher
  • Laravel 13
  • A free LaravelUi5 account from pragmatiqu.io (Core is distributed via the private Satis repository)
  • LaravelUi5 OData (installed automatically as a dependency)

1. Configure the package registry ​

Core is distributed via the private registry at packages.pragmatiqu.io. Let Composer register it:

bash
composer config repositories.pragmatiqu composer https://packages.pragmatiqu.io

Use the command rather than editing composer.json by hand. Composer writes the entry as a named block, and keeps that shape as you add repositories later — including the path repository that each scaffolded UI5 app needs:

json
"repositories": {
    "pragmatiqu": {
        "type": "composer",
        "url": "https://packages.pragmatiqu.io"
    }
}

Composer accepts a second shape for this section, a plain list. Both are valid, but the section holds one value or the other, so mixing them is the one way to get this wrong: write the list form here, paste a named block later (or the reverse), and the second write replaces the first — taking the registry you installed Core from out of the file with it. You find out one command later, when Composer reports that it cannot find a matching version of laravelui5/core. Letting Composer write its own manifest keeps that from ever arising.

2. Authenticate ​

You'll need a Composer token. Reading the docs is free. Installing needs a free account: it gives you a named installation and its token for composer require. Create your free account →

Use Composer's HTTP-Basic credential store to bind your install token to the Satis host:

bash
composer config --global http-basic.packages.pragmatiqu.io [email protected] YOUR-INSTALL-TOKEN

The token is the password; the username is the email on your account. This is the command the portal hands you with both halves filled in, the moment you mint a token — copy it rather than retyping it.

--global writes ~/.composer/auth.json, so the credential belongs to your machine rather than to one checkout. Drop the flag and Composer writes an auth.json next to your composer.json instead — which works, and is worth knowing about only so you keep it out of version control. A repository is a property of the project; a credential is not.

3. Install Core ​

bash
composer require laravelui5/core
composer require laravelui5/chiron --dev   # optional: guidelines for your coding agent

The second line is optional and dev-only. laravelui5/chiron ships the guidelines and Agent Skills that Laravel Boost hands your coding agent, so it writes this stack instead of guessing at it. It takes one opt-in tick during php artisan boost:install — a scripted install takes nothing without it.

This pulls in laravelui5/odata automatically — no separate installation needed. The Ui5CoreServiceProvider is registered via Laravel's package auto-discovery, so no manual provider entry in bootstrap/providers.php is required.

4. Publish the configuration ​

bash
php artisan vendor:publish --tag=ui5-config

This creates config/ui5.php, where you can customize the registry implementation, context factory, artifact resolvers, and the middleware stacks applied to the UI5 and OData route groups.

5. Verify the installation ​

bash
php artisan route:list --path=ui5
php artisan route:list --path=odata

You should see the UI5 routes (under the ui5/ prefix) and the OData routes (under the odata/ prefix) registered with their middleware stacks. Both groups are wired automatically by the service provider. One middleware edit stays yours: replacing Laravel's CSRF middleware in bootstrap/app.php, see Quickstart. Without it, a UI5 write with a stale token answers 419 instead of the 403 and X-CSRF-Token: required that UI5 expects.

OData integration ​

OData v4 is provided by laravelui5/odata (MIT) and is fully integrated out of the box:

  • Every UI5 application is an OData service: AbstractUi5App extends LaravelUi5\OData\ODataService.
  • The OData route group is registered with Core's CSRF-token and authentication middleware — UI5's X-CSRF-Token handshake works without further configuration.
  • Manifests are enriched automatically: manifest.json includes dataSources for any artifact implementing ODataServiceInterface.

To define entity sets, function imports, or custom bindings, override configure(), registerBindings(), and bindFunctions() on your AbstractUi5App subclass.

What's next? ​

  • Quickstart — Build your first UI5 module on Core
  • The artisan commands: ui5:assemble and ui5:wire to scaffold a self-contained app and wire a data floorplan into it, ui5:app and ui5:lib to import existing UI5 source projects, plus the artifact generators ui5:card, ui5:tile, ui5:chart, ui5:action, ui5:resource, ui5:report, ui5:dashboard, ui5:group — and ui5:slot to inspect the slot catalog
  • For productivity features (database-backed registry, time-bound authorization, the shell with its navigation and command palette, server-side table export, prebuilt business modules) see the SDK installation guide