Interface LaravelUi5\Sdk\Shell\Contracts\DiscoveryServiceAssemblerInterface

Assembles fully wired DiscoveryService instances for specific runtime roles such as context initialization or global search.

An assembler is responsible for structural composition only. It builds the internal object graph of a DiscoveryService by instantiating and wiring the required ActionCollectors according to a declarative configuration.

The assembler does NOT:

  • apply runtime or request-specific configuration (e.g. limits, switches),
  • perform discovery or search logic,
  • resolve permissions or context state,
  • read global configuration by itself.

Assembly answers the question: "Which discovery capabilities exist for this role?"

Runtime configuration (e.g. limits, filters, feature switches) is applied later in the request pipeline by the consumer of the assembled service.

Typical usage:

  • The application container binds multiple DiscoveryService aliases (e.g. "discovery.context", "discovery.search") to this assembler.
  • Each alias provides a different assembly configuration describing which ActionCollectors should be used.
  • The resulting DiscoveryService instances are structurally identical in behavior but differ in scope and available contributors.

Example assembly configuration:

'discovery' => [ 'context' => [ // Die Contributoren für den Context ], 'search' => [ // Die Contributoren für die Suche ] ],

The assembler must ensure that:

  • all configured collectors are instantiated,
  • collectors are configured if they support configuration,
  • collectors are injected into the DiscoveryService in a deterministic way,
  • the returned DiscoveryService is ready for use without further wiring.
  • LaravelUi5\Sdk\Shell\Contracts\DiscoveryServiceAssemblerInterface
    • LaravelUi5\Sdk\Shell\DiscoveryServiceAssembler implements DiscoveryServiceAssemblerInterface
Methods