Public API and stability
This extension was extracted from another extension to provide a stable, reusable API that other extensions can build on and rely on. To keep that promise meaningful, the API surface is split into a public part covered by backward-compatibility guarantees and an internal part that may change at any time.
Public API
The following types form the public API. Depend on these interfaces and types:
| Type | Purpose |
|---|---|
FGTCLBEnvironment | Central service to backup, bootstrap, apply, restore and execute within an environment. |
FGTCLBEnvironment | Resolves a TYPO3 core-version compatible environment builder. |
FGTCLBEnvironment | Builds a State for a given build context. |
FGTCLBEnvironment | Immutable snapshot of the bootstrapped environment elements. |
FGTCLBEnvironment | DTO describing which environment to build. |
FGTCLBEnvironment,
FGTCLBEnvironment | PSR-14 events to react on state changes. |
FGTCLBEnvironment,
FGTCLBEnvironment | Exceptions thrown by the API. |
The TYPO3 core-version specific Core12Extended and
Core13Extended extend State and are part
of the public API as well. They exist for future version-specific additions to
the state contract. Type-hint the version-agnostic State in code
that should work across core versions, and only reference an
Extended when you explicitly target a specific TYPO3 core
version.
Internal implementation details
The concrete, TYPO3 core-version specific implementations under the
FGTCLBEnvironment and
FGTCLBEnvironment namespaces – for example
Core13State, Core13Frontend and
Core13State – as well as the Environment and the
internal traits are marked @internal. They are registered as dependency
injection services and resolved to the implementation matching the running
TYPO3 core version.
Warning
Never type-hint or instantiate the core-version specific classes directly. Always inject the interfaces; the dependency injection container provides the implementation for the current TYPO3 core version. Their constructor signatures already differ between core versions and may change at any time without a backward-compatibility break.