mattablues / radix-framework
Radix Framework
Requires
- php: ^8.3
- ext-fileinfo: *
- ext-gd: *
- ext-libxml: *
- ext-openssl: *
- ext-pdo: *
- dflydev/dot-access-data: ^3.0.2
- psr/container: ^2.0
- psr/event-dispatcher: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.93
- infection/infection: ^0.32
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^11.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
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:
mattablues/radix-app: https://github.com/mattablues/radix-app
- Installation
- Snabbstart
- Funktioner i Radix Framework (översikt)
- Dokumentation
- Projektlayout
- Autoloading
- För ramverksutvecklare
- Versionering och användning från andra projekt
- Licens
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)
- Flexibel router (
-
Controller‑lager
- Bascontrollers för web och API (
Radix\Controller\AbstractController,AbstractApiController)
- Bascontrollers för web och API (
-
Console & CLI
- Konsolapplikation (
Radix\Console\ConsoleApplication) - Kommandoregister (
CommandsRegistry) - Inbyggda kommandon för bl.a. migrationer och generatorer (
Radix\Console\Commands\...)
- Konsolapplikation (
-
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)
- Databasanslutningar och manager (
-
Container & Service Providers
- Dependency Injection‑container (
Radix\Container\Container,ApplicationContainer) - Definitioner, parametrar och referenser (
Definition,Parameter,Reference,Resolver) - Service providers (
Radix\ServiceProvider)
- Dependency Injection‑container (
-
View‑motor
- Template‑engine med ratio‑templates, extends/yield, komponenter och slots (
Radix\Viewer\RadixTemplateViewer) - Cache‑hantering för vyer och enkla filter
- Template‑engine med ratio‑templates, extends/yield, komponenter och slots (
-
Session & autentiseringsstöd
- Anpassningsbar sessionshanterare (
Radix\Session\RadixSessionHandler) med fil- eller databaserad lagring
- Anpassningsbar sessionshanterare (
-
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)
- Fil‑ och data‑hjälpare (
-
Övrigt
- Event dispatcher (
Radix\EventDispatcher) - Mailer‑stöd (
Radix\Mailer) - Felhantering och fel‑svar (
Radix\Error)
- Event dispatcher (
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:
- Radix App: https://github.com/mattablues/radix-app
Projektlayout
Radix är ett eget repo och konsumeras via Composer:
-
mattablues/radix-frameworkinnehåller själva ramverket. -
Applikationer (t.ex.
mattablues/radix-appeller 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:
-
Tagga releaser med semantisk versionering, t.ex.:
git tag -a v0.1.0 -m "First Radix Framework release" git push origin v0.1.0 -
I konsumerande applikation:
composer require mattablues/radix-framework:^0.1
Licens
MIT. Se LICENSE.