wiznetic / kernel
Programmable lifecycle microkernel by Wiznetic
1.3.0
2026-02-19 14:20 UTC
README
🎯 Цел на проекта
Създаваме собствен PHP microkernel, който:
- не налага MVC / routing / controller
- има programmable lifecycle
- позволява модули
- дава пълна свобода на програмиста
- е Composer пакет
📦 Име и идентичност
Vendor: Wiznetic
Пакет: wiznetic/kernel
Namespace: Wiznetic\Kernel
Основен клас: Wiznetic\Kernel\Kernel
🧠 Архитектурна идея
Kernel = lifecycle engine
Modules = логика
App = конфигурация
Kernel не знае:
- controller
- router
- view
- http архитектура
Kernel знае само събития (stages).
⚙️ Kernel API (фиксиран)
Kernel::before(string $event, callable $cb); Kernel::on(string $event, callable $cb); Kernel::after(string $event, callable $cb); Kernel::handle(ServerRequestInterface $request): ResponseInterface;
🔄 Lifecycle събития (фиксирани)
request
process
response
terminate
error
▶️ Изпълнение вътре в handle()
Ред:
before request
on request
after request
before process
on process
after process
before response
on response
after response
После:
terminate
🧩 Контекст (ctx)
Всеки callback получава:
$ctx->request
$ctx->response
$ctx->data (по избор)
Callback може да:
- чете request
- задава response
- добавя данни
▶️ Пример използване
use Wiznetic\Kernel\Kernel; Kernel::before('process', function($ctx) { // auth }); Kernel::on('process', function($ctx) { $ctx->response = new Response(200, [], "Hello"); }); Kernel::after('response', function($ctx) { // log }); $response = Kernel::handle($request);
🧱 Kernel е Composer пакет
Repo структура:
wiznetic-kernel/
src/
Kernel.php
composer.json
composer.json:
{
"name": "wiznetic/kernel",
"autoload": {
"psr-4": {
"Wiznetic\\Kernel\\": "src/"
}
}
}
🌍 Разпространение
1️⃣ GitHub repo: wiznetic/kernel
2️⃣ Публикуване в Packagist
3️⃣ Инсталиране:
composer require wiznetic/kernel
🧩 Модулна философия
Kernel няма функционалност.
Функционалност идва от модули:
- wiznetic/controller
- wiznetic/routing
- wiznetic/security
- wiznetic/view
Всеки модул регистрира hooks:
Kernel::on('process', ...);
🧠 Архитектурен модел
Programmable Microkernel:
App
├─ Modules
│ ├─ Controller
│ ├─ Routing
│ └─ ...
└─ Kernel lifecycle
Kernel е execution engine.
✅ Основни принципи
- Kernel е черна кутия
- Lifecycle е отворен
- Няма хардкоднати слоеве
- Hooks вместо framework логика
- Всичко е разширяемо
- PSR request/response
- Composer пакет
- Vendor Wiznetic
📍 Финално състояние
Имаме:
✔ име
✔ архитектура
✔ lifecycle
✔ API
✔ пакет структура
✔ философия