| 1 | # Кластер PHP (**world (KE):** `software.php`) — навигация v1 |
| 2 | |
| 3 | **Назначение:** точка входа при **полном или частичном** фундаментальном проходе по PHP без фреймворка. Следовать контракту memory-architecture: **status → playbook → kb**; этот файл — **карта «задача → файл»**, не заменяет playbook. |
| 4 | |
| 5 | **Статус домена:** `status-php-laravel-v1.md` (блок PHP + Laravel). Для чистого PHP достаточно статуса и `playbook-php-v1.md`. |
| 6 | |
| 7 | --- |
| 8 | |
| 9 | ## Порядок чтения (full fundamental pass) |
| 10 | |
| 11 | 0. **Опционально (легаси, миграция с 5.x/7.x, «с какой версии фича»):** `kb-php-versions-and-evolution-v1.md` — эволюция PHP 5.3→8.x, таблица фич, типовые ломания 5.6→7, 7.4→8. |
| 12 | 1. `kb-php-fundamentals-v1.md` — версии, SAPI, OPcache, типизация, 8.4, Composer, security baseline, JIT/GC/preload/FPM (расширенный блок). |
| 13 | 2. `kb-php-language-semantics-v1.md` — семантика языка, ООП, ошибки, пространства имён, сравнения, опасные API. |
| 14 | 3. `kb-php-web-sessions-io-v1.md` — суперглобалы, сессии, cookies, заголовки, загрузка файлов, потоки. |
| 15 | 4. `kb-php-data-persistence-v1.md` — PDO, транзакции, подготовленные запросы, обход без ORM. |
| 16 | 5. `kb-php-tooling-quality-v1.md` — тесты, статанализ, миграции версий, отладка, CI. |
| 17 | |
| 18 | **Laravel:** после слоя PHP — `playbook-laravel-v1.md` + `index-knowledge-laravel-cluster-v1.md` (карта) → `kb-laravel-fundamentals-v1.md` и при необходимости остальные `kb-laravel-*`. |
| 19 | |
| 20 | --- |
| 21 | |
| 22 | ## Таблица: вопрос → куда смотреть |
| 23 | |
| 24 | | Тип вопроса | Первичный kb | |
| 25 | |-------------|----------------| |
| 26 | | Какая версия, миграция 8.3→8.4, OPcache, JIT, preloading | `kb-php-fundamentals-v1.md` | |
| 27 | | Эволюция с PHP 5/7, мажорные ломания, «с какой версии enum/union/traits» | `kb-php-versions-and-evolution-v1.md` | |
| 28 | | strict_types, union types, enum, readonly, match, attributes | `kb-php-language-semantics-v1.md` | |
| 29 | | Fatal vs Exception, Throwable, кастомные ошибки | `kb-php-language-semantics-v1.md` § ошибки | |
| 30 | | Почему «ломается» сессия / fixation / cookie flags | `kb-php-web-sessions-io-v1.md` | |
| 31 | | $_FILES, MIME, path traversal при upload | `kb-php-web-sessions-io-v1.md` | |
| 32 | | PDO vs mysqli, prepared statements, deadlocks | `kb-php-data-persistence-v1.md` | |
| 33 | | PHPUnit vs Pest, PHPStan уровни, Rector | `kb-php-tooling-quality-v1.md` | |
| 34 | | Composer scripts, platform, audit, conflict | `kb-php-fundamentals-v1.md` + `playbook-php-v1.md` | |
| 35 | |
| 36 | --- |
| 37 | |
| 38 | ## Правила нагрузки контекста |
| 39 | |
| 40 | - **Не грузить все шесть kb сразу** — только по строке таблицы или по этапу full pass (0 опционально, 1→5). |
| 41 | - При **узком баге** — один kb + официальная документация php.net по затронутой функции. |
| 42 | - При **споре о поведении** — первоисточник: версия PHP + php.net/manual, не блоги. |
| 43 | |
| 44 | --- |
| 45 | |
| 46 | ## Смежные миры (не чистый PHP и не Laravel) |
| 47 | |
| 48 | - WordPress, Drupal, Symfony full stack, Packagist/сторонние пакеты — `index-knowledge-php-adjacent-ecosystem-v1.md`. |
| 49 | |
| 50 | --- |
| 51 | |
| 52 | ## Registry note |
| 53 | |
| 54 | - **world:** software.php |
| 55 | - **layer:** router (индекс кластера) |
| 56 | - **status:** active |
| 57 | - **updated_at:** 2026-03-01 (шаг 0 evolution) |
| 58 | |