memran/marwa-framework

MarwaPHP - A future‑proof, PSR‑compliant PHP framework core.Minimal, modular, and fast — with developer‑friendly APIs.

Maintainers

Package info

github.com/memran/marwa-framework

pkg:composer/memran/marwa-framework

Statistics

Installs: 115

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

v1.4.5 2026-04-18 00:07 UTC

This package is auto-updated.

Last update: 2026-04-18 00:09:34 UTC


README

Packagist Latest Version Total Downloads CI License PHP PHPStan PHPUnit

Documentation

📖 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.

What It Includes

  • 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-db and marwa-module integration for app-level runtime features

Install

composer require memran/marwa-framework

If 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 .env

Quick Start

use 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

Documentation

Notes

  • Generated controllers extend Marwa\Framework\Controllers\Controller.
  • Validation failures flash _old_input and errors into the session.
  • Theme manifests live in resources/views/themes/<theme>/manifest.php by default.
  • APP_KEY is required for encrypted sessions.
  • Modules can contribute navigation through Marwa\Framework\Navigation\MenuRegistry and the menu() helper.

Development

composer test
composer analyse
composer lint