Interface LaravelUi5\Core\Ui5\Capabilities\TileProviderInterface

The Tile's executor seat — produces the complete typed tile control (sap.m.GenericTile / sap.m.ActionTile / sap.m.SlideTile, unified by the {@see Tile} marker) for a dashboard render pass.

Mirrors the POPO + executor split the Action+Handler pair established and the Card's getProvider(): class-string<DataProviderInterface> already uses: the Tile artifact is the metadata POPO; this capability is the executor that computes the whole {@see Tile} from bound slot values and the request's runtime context.

The provider owns the entire tile — shell and content. There is no longer a static getGenericTile() template on the artifact with the framework injecting tileContent: a tile's shell is frequently data-driven (a subheader carrying "last used 2 days ago", a valueColor reflecting health), and only the executor has the data to compute it. So the executor returns the finished DTO, tileContent included.

Concrete providers receive their dependencies (repositories, services) via constructor DI — same convention as {@see ActionHandlerInterface} and {@see DataProviderInterface}. The Tile's emitter calls $tile->getTileProvider()->getTile($bound, $context) and returns the result verbatim.

Unlike a Card's provide() — invoked at the card endpoint, where the {@see \LaravelUi5\Core\Runtime\ExecutableInvoker} injects the concrete context by signature — a Tile is resolved inline during dashboard composition, so the context is passed explicitly. The argument is typed to the {@see Ui5ContextInterface} contract; the concrete instance is whatever the active layer bound (the SDK's SdkContext on an SDK host), which a tile narrows when it needs the actor. Identity-bearing state travels verbally here, never through a scalar slot.

Methods