Forge
markdowne8ad0934
1# Laravel — версии, требования PHP, апгрейды (мажоры 8–12+)
2
3**Назначение:** опорная **матрица мажоров** и дисциплина апгрейда без путаницы между ветками документации. Мир `software.laravel`. Детали «как писать код» — в `kb-laravel-fundamentals-v1.md`.
4
5**Порядок загрузки:** `status-php-laravel-v1.md` → `playbook-laravel-v1.md` → этот файл. PHP-рантайм — `playbook-php-v1.md` + `kb-php-*`.
6
7---
8
9### 1. Сводная матрица (ориентир; сверять с официальным release каждой ветки)
10
11| Laravel (мажор) | Минимальный PHP (типично) | Примечание |
12|-----------------|---------------------------|------------|
13| 8.x | 7.3 → позже 8.0 | **EOL** для новых проектов; только наследие |
14| 9.x | 8.0+ | Symfony 6; EOL для greenfield |
15| 10.x | 8.1+ | Долгая ветка для многих продов |
16| 11.x | 8.2+ | Упрощённый skeleton, минимум default файлов |
17| 12.x | 8.2–8.5 (диапазон по docs 12.x) | Актуальный ориентир KB |
18
19- **Fact:** точные диапазоны и исключения — в `https://laravel.com/docs/{X}.x/releases` и в `composer.json` пакета `laravel/framework`.
20- **Heuristic:** не переносить примеры кода из docs **12.x** на приложение **10.x** без проверки синтаксиса и changelog.
21- **Confidence:** medium (версии PHP меняются с патчами политики; первоисточник — docs + lockfile)
22
23---
24
25### 2. Что обычно отличается между мажорами (для маршрутизации вопросов)
26
27- **Laravel 9:** переход на Symfony 6; типичные deprection в сторону строгих сигнатур.
28- **Laravel 10:** обновления зависимостей, выравнивание с PHP 8.1+ фичами в экосистеме.
29- **Laravel 11:** **slimmer default app** (меньше файлов из коробки), изменения в bootstrap/service providers по сравнению с 10; новые дефолты в `bootstrap/app.php` (концептуально — «одна точка конфигурации приложения»).
30- **Laravel 12:** накопительные улучшения поверх 11; всегда читать **Release notes** и **Upgrade Guide** для **целевой** ветки.
31
32- **Heuristic:** вопрос «где `Kernel.php` / где регистрировать маршруты в новом стиле» — почти всегда про **11+ vs 10−**.
33- **First adoption task:** в README репозитория зафиксировать: `laravel/framework` ^X.Y, PHP ^A.B, способ деплоя.
34- **Success criterion:** любой разработчик открывает нужную ветку docs за ≤1 минуту.
35
36---
37
38### 3. Дисциплина апгрейда (операционно)
39
40- **Fact:** официальный путь — **Upgrade Guide** для каждого промежуточного мажора (не перепрыгивать через несколько мажоров без плана).
41- **Heuristic:** сначала поднять **PHP** до диапазона целевого Laravel, затем `composer update` с фиксацией конфликтов пакетов (`laravel/*`, `spatie/*`, `nunomaduro/collision`, testing stack).
42- **Check:** полный `php artisan test`, ручной smoke критичных маршрутов, прогон очередей на stage.
43- **Decision criterion:** зелёные тесты + отсутствие deprecations, блокирующих прод (или явный backlog).
44- **Confidence:** high (процесс), medium (конкретный diff между X и Y)
45
46---
47
48### 4. LTS и поддержка
49
50- **Fact:** политика поддержки версий публикуется на laravel.com (release schedule). Не дублировать даты здесь — они устаревают.
51- **Heuristic:** прод на EOL-мажоре — план миграции важнее новых фич.
52- **Transfer_boundary:** enterprise SLA и security patches — по контракту с командой, не по этой KB.
53
54---
55
56## Registry card (template-knowledge-card-v1)
57
58### Provenance
59- source_refs: `https://laravel.com/docs/12.x/releases`; обобщение практик апгрейда; updated 2026-03-01
60- created_at: 2026-03-01
61- updated_at: 2026-03-01
62- author: agent-notes KB maintainer
63
64### Metadata
65- card_id: KC-2026-03-01-LARAVEL-VERSIONS
66- world: software.laravel
67- layer: world
68- tags: laravel; upgrade; php-versions; lts
69- status: active
70
71### Epistemic Linkage
72- epistemic_basis: fact + inference
73- evidence_type: official docs + composer constraints
74- confidence: medium
75- uncertainty: точные даты EOL и минорные требования PHP
76- falsification_trigger: расхождение с laravel.com/docs/{major}.x/releases для заявленного мажора
77- transfer_boundary: не использовать матрицу для не-Laravel стеков
78
79### Core Unit
80- context: планирование апгрейда, несовпадение примеров docs с проектом
81- signal: «на каком мы Laravel», «почему не компилится после update»
82- action: lockfile + Upgrade Guide ветки
83- outcome: осознанный пошаговый апгрейд
84- lesson: мажор Laravel и мажор PHP — связанные ограничения
85
86### Operationalization
87- first_adoption_task: записать версии в README и CI matrix
88- validation_check: `composer validate`, `php artisan about` (где доступно)
89- success_criterion: документация ветки docs совпадает с composer.lock
90- rollback_or_mitigation: git revert + composer.lock из VCS
91
92### Lifecycle
93- supersedes: —
94- superseded_by: —
95- deprecation_reason: —
96
97
View only · write via MCP/CIDE