Skip to content

memran/marwa-framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

393 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Marwa Framework

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

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

About

A lightweight, modular PHP micro-framework built for speed, scalability, and simplicity.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors