Download the PHP package stephenjude/filament-feature-flags without Composer
On this page you can find all versions of the php package stephenjude/filament-feature-flags. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download stephenjude/filament-feature-flags
More information about stephenjude/filament-feature-flags
Files in stephenjude/filament-feature-flags
Package filament-feature-flags
Short Description Filament implementation of feature flags and segmentation with Laravel Pennant.
License MIT
Homepage https://github.com/stephenjude/filament-feature-flags
Informations about the package filament-feature-flags
Filament Feature Flags
Filament implementation of feature flags and segmentation with Laravel Pennant.
- Apply features for a segment of users (i.e., by country or currency)
- Apply features for individual users (i.e., by email or ID)
- Apply features for all users
- Create custom feature segmentation
- Feature event handling (i.e., run code when a feature is activated/deactivated)
- UI to modify a segment of users
- Purge all resolved features from storage
Learn More
Installation
You can install the package via composer and publish and run the migrations with:
Usage
This package is exclusively for class based features.
You'll have to register the plugin in your panel provider.
You don't have to call
Feature::discover()
in your service provider boot method, this package already did that for you.
Authorization/Access Control
You can authorize the plugin for users with a specific role/permission:
Create Class Based Feature
To create a class based feature, you may invoke the pennant:feature Artisan command.
When writing a feature class, you only need to use the Stephenjude\FilamentFeatureFlag\Traits\WithFeatureResolver
trait, which will be invoked to resolve the feature's initial value for a given scope.
Overriding Default Values per Feature
If you need more control over the default value of a feature, you can either add a defaultValue
property.
Or a defineValue
method.
The result of these methods will get cast to a boolean.
If neither are defined, the default value gets fetched from the filament-feature-flags.default
config entry.
Feature Segmentation
By default, this package resolves scope using the App\Models\User
model and the default segment applies features for individual or group of users by email.
To add a new segment, add this code snippet below to the segments section on the filament-feature-flag
config:
Example 1: Adding Segment For Currency
Example 2: Adding Segment For Country
Feature Events
When a feature is activated or deactivate, this package dispatches events which your application can subscribe to. You can listen to these events inside your EventServiceProvider class.
This is the contents of the published config file:
Screenshots:
Testing
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
- stephenjude
- All Contributors
License
The MIT License (MIT). Please see License File for more information.
All versions of filament-feature-flags with dependencies
filament/filament Version ^3.0
illuminate/contracts Version ^10.0|^11.0|^12.0
laravel/pennant Version ^1.10
spatie/laravel-package-tools Version ^1.14.0