Forge
markdowne8ad0934
1# Laravel — связь с Symfony: компоненты и границы ответственности
2
3**Назначение:** объяснить, **почему** в Laravel встречаются классы и концепции Symfony (HttpFoundation, Console, Process, …) и **когда** идти в документацию symfony.com. Мир `software.laravel` + пересечение с `software.php`.
4
5**Порядок загрузки:** `kb-laravel-fundamentals-v1.md` → этот файл. Глубокий PHP — `kb-php-language-semantics-v1.md`.
6
7---
8
9### 1. Факт: Laravel строится на компонентах Symfony
10
11- **Fact:** ядро HTTP-абстракций, консоль, процессы, MIME, переводы, rate limiter, finder и др. historically/фактически опираются на **symfony/*** пакеты (конкретный набор зависит от версии `laravel/framework` — смотреть `composer.lock`).
12- **Heuristic:** stack trace с `Symfony\Component\HttpFoundation` — норма, не «ошибка фреймворка».
13- **Confidence:** high
14
15---
16
17### 2. Типичные точки контакта разработчика
18
19| Область | Symfony-слой (концептуально) | Практика в Laravel |
20|---------|--------------------------------|-------------------|
21| Request/Response | HttpFoundation | `Illuminate\Http\Request` оборачивает/наследует поведение foundation |
22| Console | Console | `artisan` команды, стиль вывода, сигналы |
23| Subprocess / shell | Process | `Illuminate\Support\Process` (обёртки вокруг Process component в современных версиях) |
24| MIME / guess types | Mime | загрузки файлов, ответы с типами |
25| Translation | Translation | `__()`, lang files |
26| Routing (частично) | Routing concepts | Laravel router — свой DSL, но идеи middleware/pipeline родственны |
27
28- **Heuristic:** баг «на границе HTTP» (заголовки, cookies, stream) — иногда проще искать по **Symfony HttpFoundation** + версии пакета в lockfile.
29
30---
31
32### 3. Когда читать Symfony docs вместо Laravel
33
34- **Низкоуровневые детали** Response (стримы, BinaryFileResponse), Cookie flags, нюансы консольного I/O.
35- **Версионная несовместимость** после `composer update`, когда меняется минор Symfony под капотом Laravel.
36
37- **Heuristic:** сначала **Laravel docs** для идиоматичного API; Symfony — для edge cases и мажоров компонентов.
38
39---
40
41### 4. Что эта KB не покрывает
42
43- **WordPress / Drupal** — см. `index-knowledge-php-adjacent-ecosystem-v1.md` и `kb-wordpress-architecture-ops-v1.md` / `kb-drupal-architecture-ops-v1.md`.
44- **Прямая разработка на Symfony Framework** — `kb-symfony-framework-fundamentals-v1.md`; здесь только **мост** для Laravel-разработчика.
45
46---
47
48## Registry card (template-knowledge-card-v1)
49
50### Provenance
51- source_refs: composer dependencies `laravel/framework`; Symfony component docs; обобщение 2026-03-01
52- created_at: 2026-03-01
53- updated_at: 2026-03-01
54- author: agent-notes KB maintainer
55
56### Metadata
57- card_id: KC-2026-03-01-LARAVEL-SYMFONY
58- world: software.laravel
59- layer: world
60- tags: laravel; symfony; http-foundation; console
61- status: active
62
63### Epistemic Linkage
64- epistemic_basis: fact + inference
65- evidence_type: dependency graph + official Symfony/Laravel docs
66- confidence: medium
67- uncertainty: точный список компонентов на каждом миноре Laravel
68- falsification_trigger: смена зависимостей в новом релизе laravel/framework
69- transfer_boundary: не руководство по чистому Symfony Full Stack
70
71### Core Unit
72- context: stack trace в Symfony, странное поведение Response/Cookie
73- signal: «это Laravel или Symfony»
74- action: lockfile → компонент → нужная doc ветка
75- outcome: быстрее локализовать слой
76- lesson: Laravel = оркестрация + соглашения поверх компонентов
77
78### Operationalization
79- first_adoption_task: знать major/minor symfony/* из composer.lock при апгрейде
80- validation_check: регрессия интеграционных тестов после composer update
81- success_criterion: нет сюрпризов от изменения symfony/* в патче
82- rollback_or_mitigation: pin зависимости только как временная мера + тикет
83
84### Lifecycle
85- supersedes: —
86- superseded_by: —
87- deprecation_reason: —
88
89
View only · write via MCP/CIDE