wiznetic/kernel

Programmable lifecycle microkernel by Wiznetic

Maintainers

Package info

github.com/wiznetic-git/kernel

pkg:composer/wiznetic/kernel

Statistics

Installs: 11

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

1.3.0 2026-02-19 14:20 UTC

This package is auto-updated.

Last update: 2026-03-19 14:32:27 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
✔ пакет структура
✔ философия