Treść pozostaje zwykłym plikiem
Punktem wyjścia jest content.yml: stabilny kontrakt, który można przeczytać bez specjalistycznego narzędzia, śledzić w Git i bezpiecznie przenosić między środowiskami. To nie format pomocniczy — to źródło prawdy.
Każdy wpis bloku przechodzi przez rejestr definicji. CMS sprawdza typ, wymagane pola, tłumaczenia, reguły długości oraz odwołania do mediów. Dopiero znormalizowane dane trafiają dalej.
Wspólny model zamiast dwóch implementacji
PageViewModelFactory składa lokalną wersję tytułu, SEO, nawigację, media oraz aktywne bloki. Na tym poziomie nie istnieje jeszcze ani odpowiedź JSON, ani dokument HTML.
Następnie model wybiera jedną z dwóch dróg:
PageSerializertworzy przewidywalną odpowiedź REST API,PageRendereruruchamia renderery bloków i osadza wynik w layoucie,- oba adaptery otrzymują identyczne, zwalidowane dane.
Zasoby podążają za treścią
Renderer nie utrzymuje globalnego pakietu wszystkich stylów. Jeśli strona używa bloku article-hero, kolektor publikuje jego CSS pod adresem zawierającym skrót treści. Nieużywane bloki nie obciążają dokumentu.
Dzięki temu nowy komponent pozostaje lokalną zmianą: schemat YAML, PHP i opcjonalny CSS lub JavaScript.
Granica między modelem a adapterem pozwala rozwijać stronę i API niezależnie, bez rozjazdu danych.
