gaiatools / fulcrum-settings
Advanced feature flags and configuration management system for Laravel with rule-based targeting
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/gaiatools/fulcrum-settings
Requires
- php: ^8.3|^8.4
- azuyalabs/yasumi: ^2.10
- dragonmantank/cron-expression: ^3.6
- illuminate/contracts: ^11.0|^12.0
- illuminate/database: ^11.0|^12.0
- illuminate/support: ^11.0|^12.0
Requires (Dev)
- larastan/larastan: ^3.8
- laravel/pennant: ^1.18
- laravel/pint: ^1.26
- laravel/telescope: ^5.16
- orchestra/testbench: ^10.8
- pestphp/pest: ^4.1
- pestphp/pest-plugin-laravel: ^4.0
- phpstan/phpstan: ^2.1
- spatie/laravel-permission: ^6.24
README
A powerful feature flag and configuration management system for Laravel with rule-based targeting and conditional evaluation.
Documentation
- Documentation Home
- Overview
- Quick Start
- Installation
- Usage Guide
- Settings via Migrations
- Comparison Table
- Use Cases
- Class-Based Settings
- Targeting Rules
- Setting Types & Custom Handlers
- Multi-tenancy
- Data Portability (Import/Export)
- Events and Observability
- Extensibility (Drivers)
- Laravel Horizon Integration
- Carbon/DateTime Integration
- Queues and Jobs
- Spatie Settings Migration
- Laravel Pennant Migration
- Troubleshooting
- API Reference
Examples
- Basic Feature Flags
- Advanced Targeting Rules
- Multi-Tenancy Setup
- Custom Type (Money)
- Data Portability (Import/Export)
Features
- Rule-based Evaluation: Complex targeting based on user attributes, segments, geo-location, and more.
- Carbon Integration: First-class support for
Carbondates and time-based scheduling rules. - Horizon Integration: Built-in support for Laravel Horizon with proper tagging and observability.
- Data Portability: Import and export settings in various formats (JSON, CSV, XML, YAML, SQL).
- Asynchronous Operations: Large imports and exports can be queued for better performance.
Quick Start
use GaiaTools\FulcrumSettings\Facades\Fulcrum; // Check a feature flag if (Fulcrum::isActive('new_dashboard')) { // ... } // Get a setting value $value = Fulcrum::get('discount_percentage', default: 0);
For more details, see the Full Documentation.