📖 Full documentation at: https://memran.github.io/marwa-framework/
Marwa Framework is a lightweight, PSR-aligned PHP 8.2+ framework core for modular web apps, console tools, and reusable runtime services.
- HTTP kernel, middleware pipeline, router integration, and lifecycle events
- Twig-based views with themes, modules, and base controller helpers
- Framework-level menu registry for app and module-driven navigation
- Console application, scaffolding commands, scheduler, queue, and bootstrap cache
- Sessions, validation, security, cache, storage, mail, notifications, Kafka publish/consume, HTTP client, and error handling
marwa-dbandmarwa-moduleintegration for app-level runtime features
composer require memran/marwa-frameworkIf you want a ready-to-run application skeleton instead of wiring the framework into a project manually, start with memran/marwa-php. It is the recommended starter application for this framework and shows the expected app structure, bootstrap files, routes, config, and developer workflow.
For local development:
git clone https://github.com/memran/marwa-framework.git
cd marwa-framework
composer install
cp .env.example .envuse Marwa\Framework\Application;
$app = new Application(__DIR__);
$app->boot();
$response = $app->http()->handle($request);# Console Commands
php marwa make:controller Admin/PostController --resource
php marwa make:seeder UserSeeder
php marwa make:model Billing/Invoice --migration
php marwa make:module Blog
php marwa make:theme dark --parent=default
php marwa shell
php marwa security:report --since-hours=24 --prune-days=30
php marwa db:seed --class=DatabaseSeeder
php marwa schedule:run --for=60 --sleep=1
# Database Management (DBForge)
php marwa db:create myapp
php marwa db:drop myapp
php marwa db:list
php marwa db:list --tables
php marwa db:backup
php marwa db:restore backup.sql
php marwa db:optimize
php marwa db:analyze- Docs Index
- Starter Application: memran/marwa-php
- Quick Start
- Controllers
- Validation
- View
- Error Pages
- Console
- Modules
- Seeding
- DebugBar
- Architecture
- Generated controllers extend
Marwa\Framework\Controllers\Controller. - Validation failures flash
_old_inputanderrorsinto the session. - Theme manifests live in
resources/views/themes/<theme>/manifest.phpby default. APP_KEYis required for encrypted sessions.- Modules can contribute navigation through
Marwa\Framework\Navigation\MenuRegistryand themenu()helper.
composer test
composer analyse
composer lintRun composer lint after manual PHP edits before opening a PR. PHP CS Fixer output is the source of truth for import order, whitespace, braces, and blank lines.