| 1 | # Laravel — фронтенд-стеки: Blade, Livewire, Filament, Inertia |
| 2 | |
| 3 | **Назначение:** выбор и границы **UI-слоёв** вокруг Laravel без привязки к одной версии пакета (версии — из `composer.lock` / `package.json`). Мир `software.laravel` + `software.web-frontend` (частично). |
| 4 | |
| 5 | **Порядок загрузки:** `kb-laravel-fundamentals-v1.md` → этот файл. Auth для SPA — `kb-laravel-security-auth-apis-v1.md`. |
| 6 | |
| 7 | --- |
| 8 | |
| 9 | ### 1. Blade-first (серверный рендер) |
| 10 | |
| 11 | - **Fact:** шаблоны Blade, layouts, компоненты `<x-*>`, стеки `@push`; минимум JS или Alpine точечно. |
| 12 | - **Heuristic:** лучший TTFB для простых форм и админок без heavy interactivity; SEO-дружелюбно из коробки. |
| 13 | - **Confidence:** high |
| 14 | |
| 15 | --- |
| 16 | |
| 17 | ### 2. Livewire |
| 18 | |
| 19 | - **Fact:** полноценные **динамические компоненты** на сервере: состояние на бэкенде, ре-рендер фрагментов через HTTP (или morphing в новых версиях). |
| 20 | - **Heuristic:** удобно для «богатых форм» и админок без отдельного SPA; следить за **количеством round-trips** и размером payload. |
| 21 | - **Heuristic:** валидация и авторизация — на сервере в компоненте/формах Livewire; не дублировать бизнес-правила только в JS. |
| 22 | - **Confidence:** medium (эволюция Livewire 2/3) |
| 23 | |
| 24 | --- |
| 25 | |
| 26 | ### 3. Filament |
| 27 | |
| 28 | - **Fact:** админ-панели и внутренние CRUD на базе Livewire; плагины, ресурсы, таблицы, формы. |
| 29 | - **Heuristic:** быстрый time-to-market для internal tools; кастомизация глубже средней — закладывать время на изучение конвенций Filament. |
| 30 | - **Heuristic:** обновления Filament привязаны к версиям Livewire и Laravel — планировать вместе с upgrade guide Laravel. |
| 31 | |
| 32 | --- |
| 33 | |
| 34 | ### 4. Inertia.js |
| 35 | |
| 36 | - **Fact:** **SPA-подобный** UX без отдельного API: Laravel отдаёт **Inertia responses**, фронт — Vue или React (официально поддерживаемые адаптеры). |
| 37 | - **Heuristic:** хороший компромисс для product UI с навигацией как в SPA; общие контракты валидации через shared props. |
| 38 | - **Heuristic:** SEO для публичных страниц — продумать SSR (где доступно) или гибрид с Blade. |
| 39 | |
| 40 | --- |
| 41 | |
| 42 | ### 5. Сравнительная эвристика (не догма) |
| 43 | |
| 44 | | Потребность | Часто подходит | |
| 45 | |-------------|----------------| |
| 46 | | Простые страницы, SEO | Blade | |
| 47 | | Интерактив без отдельного SPA repo | Livewire | |
| 48 | | Внутренняя админка из коробки | Filament | |
| 49 | | Продуктовый UI в стиле SPA, команда знает Vue/React | Inertia | |
| 50 | |
| 51 | - **First adoption task:** одно решение на продукт (или явные границы зон Blade vs Inertia), не смешивать без стандарта. |
| 52 | - **Success criterion:** единый стиль auth, ошибок валидации и loading states. |
| 53 | |
| 54 | --- |
| 55 | |
| 56 | ### 6. Сборка активов |
| 57 | |
| 58 | - **Fact:** Vite — современный дефолт в стартерах Laravel; `npm run build` в CI для prod. |
| 59 | - **Heuristic:** кеширование manifest и CDN — в playbook деплоя; не забывать `vite` директивы в Blade. |
| 60 | |
| 61 | --- |
| 62 | |
| 63 | ## Registry card (template-knowledge-card-v1) |
| 64 | |
| 65 | ### Provenance |
| 66 | - source_refs: `https://laravel.com/docs` (Blade, Frontend: Vite, starter kits); livewire.laravel.com; filamentphp.com; inertiajs.com — обобщение 2026-03-01 |
| 67 | - created_at: 2026-03-01 |
| 68 | - updated_at: 2026-03-01 |
| 69 | - author: agent-notes KB maintainer |
| 70 | |
| 71 | ### Metadata |
| 72 | - card_id: KC-2026-03-01-LARAVEL-FRONTEND |
| 73 | - world: software.laravel |
| 74 | - layer: world |
| 75 | - tags: laravel; blade; livewire; filament; inertia; vite |
| 76 | - status: active |
| 77 | |
| 78 | ### Epistemic Linkage |
| 79 | - epistemic_basis: inference + fact |
| 80 | - evidence_type: official docs + экосистемные сайты |
| 81 | - confidence: medium |
| 82 | - uncertainty: версии Livewire/Filament и breaking changes |
| 83 | - falsification_trigger: смена рекомендованного bundler или стартера в Laravel docs |
| 84 | - transfer_boundary: не сравнение с React/Next отдельно от Laravel |
| 85 | |
| 86 | ### Core Unit |
| 87 | - context: выбор стека UI, апгрейд Filament/Livewire |
| 88 | - signal: «что использовать для админки/SPA» |
| 89 | - action: таблица эвристик + auth слой |
| 90 | - outcome: меньше гибридного хаоса |
| 91 | - lesson: один доминирующий UI-паттерн на продукт проще сопровождать |
| 92 | |
| 93 | ### Operationalization |
| 94 | - first_adoption_task: ADR «frontend stack» в репо |
| 95 | - validation_check: E2E на критичных user flows |
| 96 | - success_criterion: согласованная обработка ошибок и auth |
| 97 | - rollback_or_mitigation: feature flags для новых UI-модулей |
| 98 | |
| 99 | ### Lifecycle |
| 100 | - supersedes: — |
| 101 | - superseded_by: — |
| 102 | - deprecation_reason: — |
| 103 | |
| 104 | |