PHP code example of memran / marwa-module

1. Go to this page and download the library: Download memran/marwa-module library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

memran / marwa-module example snippets




declare(strict_types=1);

use Marwa\Module\ModuleBuilder;
use Marwa\Module\ModuleRegistry;
use Marwa\Module\ModuleRepository;

$modulesPath = __DIR__ . '/modules';
$cacheFile = __DIR__ . '/storage/cache/modules.php';

$repository = new ModuleRepository($modulesPath, $cacheFile);
$registry = new ModuleRegistry($repository);
$builder = new ModuleBuilder($registry);

$user = $builder->current('user');

$user->slug();
$user->routes('http');
$user->path('views');
$user->migrations();
$user->get('menu');          // custom manifest key
$user->get('permissions', []);

count($registry);             // Countable
json_encode($user);           // JsonSerializable



declare(strict_types=1);

return [
    'name' => 'User Module',
    'slug' => 'user',
    'version' => '1.0.0',
    'providers' => [
        App\Modules\User\UserServiceProvider::class,
    ],
    'paths' => [
        'views' => 'resources/views',
    ],
    'routes' => [
        'http' => 'routes/http.php',
    ],
    'migrations' => [
        'database/migrations/2026_01_01_000000_create_users_table.php',
    ],
];



declare(strict_types=1);

use Marwa\Module\ModulesServiceProvider;

$provider = new ModulesServiceProvider(
    __DIR__ . '/modules',
    __DIR__ . '/storage/cache/modules.php'
);

$provider->register($app);
bash
php examples/index.php
json
{
    "modules": [
        {
            "slug": "auth",
            "name": "Auth Module",
            "version": "1.0.0",
            "manifest": {
                "name": "Auth Module",
                "slug": "auth",
                "version": "1.0.0",
                "menu": "Authentication",
                "permissions": ["auth.manage", "auth.login"],
                "providers": ["Marwa\\Module\\Examples\\Modules\\Auth\\AuthServiceProvider"],
                "paths": { "views": "resources/views" },
                "routes": { "http": "routes/http.php" },
                "migrations": ["database/migrations/2026_01_01_000000_create_auth_tables.php"]
            },
            "route": "/path/to/examples/modules/auth/routes/http.php",
            "views": "/path/to/examples/modules/auth/resources/views",
            "providers": [
                "Marwa\\Module\\Examples\\Modules\\Auth\\AuthServiceProvider"
            ],
            "migrations": [
                "/path/to/examples/modules/auth/database/migrations/2026_01_01_000000_create_auth_tables.php"
            ]
        }
    ],
    "lookups": {
        "current_auth_name": "Auth Module",
        "resolved_by_path": "auth"
    },
    "bootstrap": {
        "repository_registered": true,
        "registry_registered": true,
        "builder_registered": true,
        "auth_provider_registered": true,
        "auth_provider_booted": true,
        "billing_provider_registered": true,
        "billing_provider_booted": true
    }
}
text
project-root/
  modules/
    User/
      manifest.php
      routes/
        http.php
      src/
      resources/