mattablues/radix-framework

Radix Framework

Maintainers

Package info

github.com/mattablues/radix-framework

pkg:composer/mattablues/radix-framework

Statistics

Installs: 406

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

v1.1.4 2026-04-01 10:50 UTC

This package is auto-updated.

Last update: 2026-04-01 10:54:06 UTC


README

Radix Framework

Radix Framework är ett fristående PHP‑ramverk som levereras som ett Composer‑paket.
Det är byggt för att vara enkelt att konsumera från andra projekt – utan att du behöver checka in framework‑kod i din applikation.

För en komplett, körbar referensapp/starter, se:

Installation

I en konsumerande applikation:

composer require mattablues/radix-framework

Ramverket kräver:

  • PHP 8.3 eller senare inom 8.x‑serien
  • Extension: ext-libxml (för XML‑funktionalitet)

Snabbstart

Ett enkelt exempel på hur Radix kan användas:

<?php

declare(strict_types=1);

use Radix\File\Reader;
use Radix\File\Writer;

// Skriv JSON till fil
Writer::json(__DIR__ . '/data.json', [
    'id'   => 1,
    'name' => 'Alice',
]);

// Läs tillbaka som assoc-array
$data = Reader::json(__DIR__ . '/data.json', assoc: true);

var_dump($data);
// ['id' => 1, 'name' => 'Alice']

Funktioner i Radix Framework (översikt)

Radix Framework innehåller bland annat:

  • Routing & HTTP

    • Flexibel router (Radix\Routing) med middleware‑stöd (Radix\Middleware)
    • HTTP‑request/response‑abstraktion (Radix\Http)
  • Controller‑lager

    • Bascontrollers för web och API (Radix\Controller\AbstractController, AbstractApiController)
  • Console & CLI

    • Konsolapplikation (Radix\Console\ConsoleApplication)
    • Kommandoregister (CommandsRegistry)
    • Inbyggda kommandon för bl.a. migrationer och generatorer (Radix\Console\Commands\...)
  • Databas, ORM & migrationer

    • Databasanslutningar och manager (Radix\Database\Connection, DatabaseManager)
    • Query builder (Radix\Database\QueryBuilder)
    • Enkel ORM‑modellering (Radix\Database\ORM)
    • Migrationer + CLI‑stöd (Radix\Database\Migration)
  • Container & Service Providers

    • Dependency Injection‑container (Radix\Container\Container, ApplicationContainer)
    • Definitioner, parametrar och referenser (Definition, Parameter, Reference, Resolver)
    • Service providers (Radix\ServiceProvider)
  • View‑motor

    • Template‑engine med ratio‑templates, extends/yield, komponenter och slots (Radix\Viewer\RadixTemplateViewer)
    • Cache‑hantering för vyer och enkla filter
  • Session & autentiseringsstöd

    • Anpassningsbar sessionshanterare (Radix\Session\RadixSessionHandler) med fil- eller databaserad lagring
  • Fil, dataformat & utilities

    • Fil‑ och data‑hjälpare (Radix\File) för CSV/NDJSON/XML/JSON m.m.
    • Datum/tid‑hjälpare (Radix\DateTime)
    • Stödklasser (Radix\Support), collections (Radix\Collection), enums (Radix\Enums)
  • Övrigt

    • Event dispatcher (Radix\EventDispatcher)
    • Mailer‑stöd (Radix\Mailer)
    • Felhantering och fel‑svar (Radix\Error)

Dokumentation

För en djupdykning i hur Radix fungerar, se:

  • Docs-index: docs/INDEX.md

För en komplett, fungerande applikation som använder ramverket, se:

Projektlayout

Radix är ett eget repo och konsumeras via Composer:

  • mattablues/radix-framework innehåller själva ramverket.

  • Applikationer (t.ex. mattablues/radix-app eller ditt eget projekt) lägger till ramverket via:

    composer require mattablues/radix-framework

Ingen framework‑kod ska checkas in direkt i app‑repon.

Autoloading

Ramverket följer PSR‑4:

"autoload": {
  "psr-4": {
    "Radix\\": "src/"
  },
  "files": [
    "support/helpers.php"
  ]
}

Tester autoloadas via:

"autoload-dev": {
  "psr-4": {
    "Radix\\Tests\\": "tests/"
  }
}

För ramverksutvecklare

Det här avsnittet är framför allt för dig som utvecklar själva Radix Framework (inte bara använder det som beroende).

Lokalt dev-setup

I mattablues/radix-framework‑repon:

composer install

Kommandon (composer scripts)

De vanligaste kommandona:

composer format
composer format:check
composer stan
composer test
composer infect
composer infect:pcov
composer infect:xdebug

Direkt från composer.json:

"scripts": {
  "stan": "phpstan analyse -c phpstan.neon.dist",
  "test": "php -d xdebug.mode=off vendor/bin/phpunit",
  "infect": "php tools/infection.php",
  "infect:pcov": "php tools/infection.php pcov",
  "infect:xdebug": "php tools/infection.php xdebug",
  "format": "@php tools/php-cs-fixer.php",
  "format:check": "@php tools/php-cs-fixer.php --dry-run --diff"
}

Tester (PHPUnit)

Ramverket använder PHPUnit 11.
Kör alla tester:

composer test

Statisk analys (PHPStan)

composer stan

Mutationstester (Infection)

composer infect
# eller
composer infect:pcov
composer infect:xdebug

Inställningar finns i infection.json.dist.

Kodstil (PHP-CS-Fixer)

Auto-fix:

composer format

Endast kontroll (bra i CI):

composer format:check

CI (GitHub Actions)

Repo:t innehåller GitHub Actions‑workflows som kör:

  • Kodstil (composer format:check)
  • Tester (composer test)
  • PHPStan (composer stan)
  • Schemalagd Infection (om aktiverad i workflow)

Versionering och användning från andra projekt

Rekommenderat:

  1. Tagga releaser med semantisk versionering, t.ex.:

    git tag -a v0.1.0 -m "First Radix Framework release"
    git push origin v0.1.0
  2. I konsumerande applikation:

    composer require mattablues/radix-framework:^0.1

Licens

MIT. Se LICENSE.