24 lines
731 B
Markdown
24 lines
731 B
Markdown
# Architecture
|
|
|
|
`flash-ext-view` runs in two layers:
|
|
|
|
1. **Boot-time**
|
|
- `ViewExtension` registers `ViewRuntime` and an annotation processor.
|
|
- `ViewTargetResolver` validates handlers and maps annotations to `ViewTarget`.
|
|
- Resolved targets are cached per handler class.
|
|
|
|
2. **Request-time**
|
|
- Handler builds local `ViewModel`.
|
|
- `ViewRuntime` injects extension globals under reserved `global` namespace, then merges local model.
|
|
- `ViewEngineAdapter` renders `RenderOutput`.
|
|
|
|
## Valid Handler Contract
|
|
|
|
- Must extend `ViewHandler`.
|
|
- Must have route annotation (`@Route`, `@GET`, `@POST`, ...).
|
|
- Must declare exactly one view annotation:
|
|
- `@Page`
|
|
- `@Partial`
|
|
|
|
Invalid configurations fail fast at startup.
|