Сайты и Page CMS
Обзор
- Scope
- Feature-gated публичная CMS, резолвинг сайтов, layouts, профили, страницы, блоки и слоты
Ключевые понятия
- Site Profile
- Runtime-профиль, собранный из PHP SiteLayoutDriver и опционального JSON-overlay.
- Layout Driver
- Зарегистрированная реализация, определяющая ключ сайта, данные профиля по умолчанию, объявления меню и настройки внешнего вида.
- Slot
- Именованная область, обрабатываемая зарегистрированным handler'ом: CMS-страница, маршрут, Blade, redirect или view.
Структура
- Site Domain
- Modelapp/Models/Site/Site.php
- Storageтаблицы sites из database/migrations/2026_06_22_130000_create_sites_tables.php
- Rendering
- Page Models
- Page
- PageTranslation
- PageSection
- Block Engineapp/Page и app/Services/Cms/Engine
- Layout Engineapp/Services/Cms/Site/Layout
- Profile Engineapp/Services/Cms/Site/Profile
- Page Models
- Public Routesroutes/cms.php
Факты
- SiteServiceProvider привязывает SiteResolverInterface к DefaultSiteResolver. authoritative
- SiteProfileManager и JsonSiteProfileLoader предоставляют данные профиля; SiteLayoutBootstrap регистрирует layout contributors. authoritative
- Зарегистрированные slot handlers: CMS page, route, Blade, redirect и view. authoritative
- Публичные CMS-маршруты условно предоставляют трекинг открытий писем, переключение локали, главную, отправку контактной формы, sitemap и fallback страницы. authoritative
- Fallback PageController регистрируется только при включённых feature flags public_routes и page_cms. authoritative
- Обычный web-маршрут главной используется только когда CMS не настроена на владение home-маршрутом. authoritative
- CmsEngineServiceProvider регистрирует рендеринг блоков, маппинг данных блоков, editor repository, рендеринг Editor.js, резолвинг плейсхолдеров и авторизацию draft-preview. authoritative
Инструкции
Add Layout Capability
- реализовать SiteLayoutDriver или contributor
- зарегистрировать contributor через существующий layout bootstrap path
- объявить defaults профиля, меню, настройки внешнего вида и необходимые views
- проверить резолвинг профиля и целевые публичные feature flags
Правила
Architectural rule
Считайте PHP layout слоем объявления/значений по умолчанию, а JSON — опциональным слоем переопределения.
Architectural rule
Объявляйте меню и настройки внешнего вида layout'а через контракт SiteLayoutDriver, а не через недокументированные JSON-ключи.