Looking to hire Laravel developers? Try LaraJobs

laravel-manifest maintained by manggala

Description
Production-ready, schema-driven, UI-agnostic configuration platform for Laravel applications.
Author
Ilham Hatta Manggala
Last update
2026/08/03 14:32 (dev-main)
License
Downloads
0

Comments
comments powered by Disqus

Laravel Manifest / Settings 🚀

Latest Stable Version License PHP Version Laravel Version

Laravel Manifest (manggala/laravel-manifest) is a production-ready, schema-driven, UI-agnostic configuration platform and manifest manager for Laravel applications.

Unlike simple key-value packages, Laravel Manifest provides an extensible schema engine that automatically manages database persistence, validation, dynamic UI rendering, REST APIs, caching, native encryption, RBAC authorization, and ecosystem package discovery.


🌟 Key Features

  • Multi-Version Compatibility: Compatible with PHP 8.2, 8.3, 8.4 and Laravel 10.x, 11.x, 12.x, 13.x.
  • Schema First Architecture: Define configuration schemas once in PHP, and let the engine generate UI, validation, REST APIs, and database migrations.
  • UI Agnostic Adapter System: Core engine is frontend-decoupled and provides built-in adapters for Blade, Livewire, Inertia React, and API Only.
  • Pluggable Storage Drivers: Switch seamlessly between Database, JSON, and Redis storage drivers.
  • Automatic Caching & Invalidation: High-performance caching with instant automatic cache purging upon setting updates.
  • Native Encryption Subsystem: Automatic encryption for sensitive values (passwords, API keys, OAuth secrets) using Laravel Crypt.
  • RBAC & Authorization Drivers: Native support for Spatie Permission, Laravel Gates, Policies, and Middleware.
  • Audit Trail & Rollback History: Track full setting change history (old_value, new_value, user_id, ip_address) with rollback capabilities.
  • Artisan Wizard & Diagnostic Doctor: Interactive php artisan settings:install setup wizard and php artisan settings:doctor health check diagnostics.
  • Manggala Ecosystem Discovery: Package discovery engine (Settings::discover()) for auto-registering settings from packages like laravel-dashboard-builder.

📦 Installation

Install the package via Composer:

composer require manggala/laravel-manifest

Run the interactive installation wizard:

php artisan settings:install

Optionally publish resources manually:

php artisan settings:publish --tag=config
php artisan settings:publish --tag=migrations

🚀 Quick Start (Fluent Schema API)

Define your application settings fluently in a Service Provider or package bootstrap:

use Manggala\Settings\Facades\Settings;
use Manggala\Settings\Schema\SettingsGroup;

Settings::group('General', function (SettingsGroup $group) {
    $group->text('site_name')
        ->label('Site Name')
        ->default('My Laravel Application')
        ->required();

    $group->password('smtp_password')
        ->label('SMTP Password')
        ->encrypted();

    $group->toggle('maintenance_mode')
        ->label('Maintenance Mode')
        ->default(false);
});

Accessing & Updating Settings

// Retrieve a setting value via helper or Facade
$siteName = setting('general.site_name', 'Default Site');

// Store a setting value
setting(['general.site_name' => 'Acme Corp']);

// Check existence
if (Settings::has('general.site_name')) {
    // ...
}

// Delete setting
Settings::forget('general.site_name');

🔒 Authorization (RBAC)

Protect setting groups using Spatie roles/permissions or Laravel Gates:

Settings::group('Mail')
    ->roles(['super-admin', 'admin'])
    ->permissions(['manage-mail-settings']);

🏥 Health Diagnostic Doctor Command

Run the doctor diagnostic command to inspect storage, cache, encryption, and permission status:

php artisan settings:doctor

🧪 Testing & Quality Assurance

Run the Pest PHP test suite:

vendor/bin/pest

Format code styling with Laravel Pint:

vendor/bin/pint

Run static analysis:

vendor/bin/phpstan analyse

📜 License

The MIT License (MIT). Please see LICENSE for more information.