Skip to content

Фаза 0 — Канонический стек и фронтенд трёх зон

Статус: единый источник версий (single source of truth). Точные версии всех слоёв для всех трёх зон. Любая версия в других разделах должна совпадать с этой страницей; при расхождении — правда здесь. Обоснование выбора Laravel 13 (а не 12) — целевая платформа; зонирование фронта (почему Blade, а не React-темы) — фронт-архитектура. Здесь — что именно ставить и каких версий.

Целевой стек (июль 2026)

СлойТехнологияВерсияОбязательность
ЯзыкPHP8.4 (эталон), минимум ^8.3required
ФреймворкLaravel13.xrequired
БДPostgreSQL16+ (JSONB+GIN для типов контента)required
Кеш/очереди/сессииRedis7+required
Очереди-мониторингLaravel Horizon^5required (парк)
HTTP-рантаймPHP-FPM (базовый) → Laravel Octane (FrankenPHP по умолч., Swoole/RoadRunner опция)Octane ^2FPM required; Octane — опция для нагруженных (после аудита Octane-safety, см. производительность)
АдминкаFilament^5.6.6 (нижняя граница L13-совместимости)required
Админ-рантаймLivewire4 (внутри Filament v5)транзитивно
Сборка ассетовVite^8 (парк уже на 7–8, см. матрицу версий)required
CSSTailwind CSS^4required
Публичный интерактив (лёгкий)Alpine.js^3по потребности
Острова/кабинетReact19по потребности
Кабинет-мостInertia.jsадаптер inertia-laravel ^3 (протокол Inertia 2)только зона 3
SSR-рантайм кабинетаNode.js22 LTSтолько зона 3
ИконкиBlade Icons / Heroiconsактуальныеrequired
ТестыPest / PHPUnitPest 4 / PHPUnit 12required (cms-testing)

Критичный пин. filament/filament: ^5.6.6, не ^5.0: версии 5.0–5.3.5 требуют illuminate/contracts ^11|^12 и сломают установку на Laravel 13. Это тот класс «непонятных ошибок при установке», который ловит preflight (жизненный цикл модулей). Подробности и источники — целевая платформа.

Требования к окружению

  • PHP-расширения (эталонный Docker-образ): pdo_pgsql, redis, gd, exif, zip, bcmath, intl, opcache (+ pcntl для Horizon). Единый образ 8.4 для всего парка — проще сопровождать одному разработчику.
  • PostgreSQL 16+ обязателен (не MySQL): JSONB+GIN, generated-колонки, partial/functional индексы — фундамент типов контента (Q5) и хранения блоков (модель данных).
  • Node.js только там, где есть зона 3 (кабинет с SSR). Публичный сайт и админка Node в проде не требуют — Vite собирает ассеты на этапе билда, не в рантайме. Это условие дешёвого хостинга массы сайтов (фронт-архитектура).
  • Composer 2, приватный Satis (центр обновлений).

Фронтенд по зонам

Граница зон — по авторизации (фронт-архитектура). Ядро (модели, сервисы, права, движок полей) — общее; различается только слой представления.

Зона 1 — Публичный сайт (до логина)

Стек: Blade + Tailwind 4 (из theme.json-токенов) + Alpine 3 + точечные React-острова (React 19), сборка Vite 8. Сервер отдаёт готовый HTML, работает теговый page-cache.

АспектРешениеТребование
РендерServer-side Bladeобязателен для SEO + page-cache
СтилиTailwind 4, токены из theme.json темыбез инлайн-CSS, без стилей в схеме блока (Q9)
Лёгкий интерактивAlpine 3 / CSSтабы, аккордеоны, меню — не React
Тяжёлый интерактивReact 19 остров, точечная гидрациякалькулятор, живой фильтр, конфигуратор, чат
SEO-escaping, JSON-LD, canonical, sitemapSEO spec
Node в продене нуженассеты собраны Vite при билде

Дисциплина островов: 3+ острова на странице, знающих друг о друге → это уже приложение, выносить в зону 3. Дизайн из claude.ai/design садится конвертацией JSX→Blade (разметка и Tailwind-классы 1:1), сверка — через галерею блоков.

Зона 2 — Админка (студия + контент-менеджер клиента)

Стек: Filament v5.6.6+ (Livewire 4 + Blade), Tailwind внутри Filament, Vite. Дизайн из claude.ai/design в админку не переносится — это рабочий инструмент, вид даёт сам Filament (адаптивный, тёмная тема из коробки, ноль вёрстки).

АспектРешениеТребование
РантаймFilament v5 (Livewire 4)^5.6.6 (L13-совместимость)
Формы блоков/типов/формдвижок полей → Filament-компонентыодна декларация → форма
Расширение модулемFilament-плагин (ресурсы/страницы/виджеты)контракт модуля
ПраваFilament Shield + spatie/permissionQ11
МедиаSpatieMediaLibraryFileUploadне голый FileUpload

Filament на Livewire — отдельный от React/Inertia мир; смешивать на одной странице нельзя. «Filament на Inertia» невозможен.

Зона 3 — Клиентские кабинеты (после логина)

Стек: Inertia 2 + React 19 (SSR на Node 22 LTS), Tailwind (тот же theme.json), Vite. Отдельное приложение рядом с ядром, на том же PHP-домене (модели/сервисы/права/движок полей через их PHP-API), но со своим фронт-рантаймом.

АспектРешениеТребование
РантаймInertia 2 + React 19, SSRNode 22 LTS в проде (только этой зоны)
Когдабогатый интерактив + сквозное состояние после логинаЛК B2C/B2B, конфигуратор, портал
Дизайнclaude.ai/design садится 1:1 без конвертацииReact-компоненты как есть
Состояниесквозное между экранами (корзина, черновики)родная стихия React
SEOне нужен (после логина)
Данныечерез PHP-API ядра/модулейAPI-контракт

Альтернатива для функционального кабинета без дизайн-требований — вторая Filament-панель (дешевле Inertia): CRUD-кабинет не рисуют. Выбор — по чеклисту зоны.

Матрица совместимости (что с чем)

ПакетТребуетПроверено на
laravel/framework ^13PHP ^8.3PHP 8.4
filament/filament ^5.6.6illuminate/contracts ^13, Livewire 4Laravel 13
spatie/laravel-medialibrary ^11Laravel 11–13Laravel 13
spatie/laravel-permission ^7.2Laravel 11–13Laravel 13
laravel/sanctum ^4Laravel 11–13Laravel 13
laravel/pennant ^1Laravel 11–13Laravel 13
inertiajs/inertia-laravel ^3Laravel 11–13Laravel 13
laravel/scout ^10Laravel 11–13Laravel 13
lunarphp/lunar (e-commerce модуль)Filament v5 bridgeпо мере заказа

Полный список готовых пакетов — путь C. Нижние границы, закреплённые в контрактах, — целевая платформа.

Общее для всех зон

  • Единые дизайн-токены theme.json → Tailwind-пресет: один источник цветов/шрифтов/ радиусов для Blade, Filament-акцентов и React-кабинета. Смена темы = смена пакета темы (контракт темы).
  • Общее ядро — PHP-домен (модели, сервисы, права, движок полей, три оси) одно на все зоны; зоны различаются только рендером.
  • Vite — единая сборка ассетов всех зон (разные entry-points, один конфиг токенов).

Политика версий

  • следуем за мажором Laravel в течение квартала после релиза (волнами через центр обновлений) — целевая платформа;
  • Filament — минорные апгрейды свободно, мажор (v6+) — по той же волновой процедуре;
  • Node LTS — переход на следующий LTS раз в цикл; PHP-минимум ядра поднимаем осознанно отдельным мажором ядра.

Чеклист фазы 0 (стек)

  • [ ] Эталонный Docker-образ PHP 8.4 с набором расширений — единый для парка.
  • [ ] PostgreSQL 16+, Redis 7+, Horizon в базовом compose.
  • [ ] Пины в composer.json ядра: ^8.3, laravel ^13, filament ^5.6.6, spatie-набор.
  • [ ] Vite 8 + Tailwind 4 + theme.json→пресет — общий конфиг для трёх зон.
  • [ ] Зона 3 (Inertia+SSR) — Node 22 LTS только там, где кабинет реально нужен.
  • [ ] Матрица совместимости проверена CI на Laravel 13 / PHP 8.4.

Связи

Внутренняя база знаний студии