A lightweight, modular PHP micro-framework built for speed, scalability, and simplicity. It adheres to PSR standards and offers rich features like routing, ORM, CLI tools, authentication, mailing, and more — making it ideal for rapid API or web application development.
- PSR-4 Autoloading & PSR-7 HTTP Message support
- Expressive Routing System
- MVC Pattern
- ORM with Relationships
- Authentication & Authorization
- Middleware Support
- Queue Job Handling
- Notification System (Email/SMS)
- Session & Cookie Management
- Templating with Smarty
- Built-in CLI (
marwa
)
- PHP >= 8.2
- Composer
- MySQL or supported database
- Optional: Redis (for cache/session/queue)
git clone https://github.com/memran/marwa-framework.git
cd marwa-framework
composer install
Create .env
file:
cp .env.example .env
Update your environment variables for DB, mail, etc.
Use PHP's built-in web server:
php -S localhost:8000 -t public
// routes/web.php
use Marwa\Application\Routing\Route;
Route::get('/', function () {
return 'Hello from Marwa!';
});
The marwa
CLI allows code generation and system operations:
php marwa make:controller HomeController
php marwa make:model Product
php marwa migrate
.
├── public/ # Web root (index.php, assets)
├── routes/ # Route definitions
├── src/
│ └── Application/
│ ├── Controllers/ # Your app controllers
│ ├── Models/ # ORM models
│ ├── Views/ # Smarty templates
│ ├── Console/ # CLI command classes
│ ├── Services/ # Business logic services
│ └── ... # Other framework components
├── storage/ # Logs, sessions, cache
├── marwa # CLI entry point
├── .env # Environment variables
├── composer.json
use Marwa\Application\Auth\Auth;
if ( Auth::check() ) {
$user = Auth::user();
}
use Marwa\Application\Notification\Notify;
Notify::to('[email protected]')->send('Welcome to Marwa Framework!');
namespace App\Models;
use Marwa\Application\Models\Model;
class User extends Model
{
protected $table = 'users';
}
Querying:
use App\Models\User;
$users = User::all();
$user = User::find(1);
Licensed under the MIT License
We welcome contributions. Feel free to fork, make a pull request, or suggest features via GitHub issues.