Concept Core

Вступ

Concept Core — це strict-typed PHP-движок (engine) для PHP 8.4+, побудований на PSR-стандартах. Він з'єднує маршрутизацію, DI, валідацію, доступ до БД, представлення та CLI в одну цілісну runtime-систему — і не нав'язує зайвих прихованих конвенцій.

Ця документація описує пакет Concept Core — фундамент для Concept Skeleton та власних застосунків. Concept Core — не CMS і не повноцінний monolith-framework: це ядро, на якому збираються features через компоненти та service providers.

Вперше з Concept?

Рекомендуємо почати з Встановлення, потім Налаштування, Конфігурація та Життєвий цикл запиту.

Чому Concept?

Concept Core дає зручності, схожі на framework, без ваги повного monolith — явна конфігурація, PSR-сумісність і модульна композиція замість «магії».

Що отримуєтеБез Concept Core
Named routes, middleware, FormRequest, DTO casting Кожен проєкт з нуля збирає половину framework
Illuminate Database (Eloquent, migrations, pagination) Підключення всього Laravel лише заради ORM
Twig або Plates — на вибір Lock-in на один templating engine
Component registry — Auth, ACL, CMS як пакети Копіювання модулів між репозиторіями
PSR-7, PSR-11 container, PSR-15 middleware Боротьба з legacy globals
Whoops у dev, безпечні fallback views у prod Білі екрани та тихі збої

Основні бібліотеки, які core з'єднує в один стек:

  • League Container — впровадження залежностей
  • League Route — HTTP-маршрутизація
  • Rakit Validation — правила валідації через FormRequest
  • Valinor — мапінг даних запиту в DTO
  • Twig або Plates — шаблони
  • Illuminate Database — Eloquent, migrations, pagination

Компоненти

Головна ідея Concept Core — компоненти: вертикальні модулі з власними маршрутами, migrations, seeders, views, console commands та assets. Зареєструйте клас компонента в конфігурації — і ComponentsServiceProvider підключить усе автоматично.

Детальніше: Концепція компонентів, Створення компонента.

Офіційна документація бібліотек

Concept Core інтегрує ці пакети; деталі API — у їхній документації:

БібліотекаРоль у Concept CoreДокументація
League Container DI, bindings, service providers container.thephpleague.com
League Route Маршрути, middleware, резолв контролерів route.thephpleague.com
Laminas Diactoros PSR-7 запити та відповіді laminas-diactoros
Laminas HttpHandlerRunner Відправка PSR-7 response у SAPI laminas-httphandlerrunner
PSR-7 / PSR-11 / PSR-15 HTTP messages, container, middleware PSR-7, PSR-11, PSR-15
Twig / Plates Шаблони HTML Twig, Plates
Rakit Validation Правила валідації FormRequest rakit/validation
Valinor DTO mapping, casting route params cuyz/valinor
Illuminate Database Eloquent / Capsule, migrations Eloquent
Symfony HttpFoundation Сесія, flash messages HttpFoundation
Symfony Console CLI-команди (bin/console.php) Console
Monolog Логування, query log monolog/monolog
Whoops Debug-сторінки помилок у dev filp/whoops
Noodlehaus Config PHP config files hassankhan/config
phpdotenv .env → конфіг vlucas/phpdotenv

Вивчення Concept

Рекомендований шлях:

  1. Пройдіть розділ Початок роботи у цій документації.
  2. Клонуйте Concept Skeleton і запустіть landing page локально.
  3. Перегляньте вихідний код у vendor/php-concept/core або в каталозі code/core цього репозиторію.