Laravel-flagsmith was created by, and is maintained by Andrew Nagy, the package is designed to allow Laravel to work with Flagsmith
- Provides a trait to be able to get features based on Laravel Users (Flagsmith Identities)
- Utilizes Laravel's Queue system to update features in the background
- Utilizes Laravel's Cache system to store features in a cache for quick access
- Utilizes Laravel's Task Scheduling system to update features on a schedule
- Adds a route to utilize Flagsmith's webhooks to update the cache when features change
Requires PHP 7.4+
Require Laravel-flagsmith using Composer:
composer require clearlyip/laravel-flagsmith
Laravel | Laravel Flagsmith |
---|---|
8.x | 1.x |
9.x | 2.x |
10.x | 2.1.x |
- Publish the Laravel Flagsmith configuration file using the
vendor:publish
Artisan command. Theflagsmith
configuration file will be placed in yourconfig
directory (Use--force
to overwrite your existingclearly
config file):php artisan vendor:publish --tag="flagsmith" [--force]
All options are fully documented in the configuration file
It's advised to add the trait Clearlyip\LaravelFlagsmith\Concerns\HasFeatures
to your user model. This will give you the ability to access features directly from your user object.
During inital login user features are synced through a queue which keeps them as up to date as possible
$user = Auth::user();
$features = $user->getFeatures();
An optional second parameter can be added as the default if the feature does not exist
$user = Auth::user();
$features = $user->isFeatureEnabled('foo');
An optional second parameter can be added as the default if the feature does not exist
$user = Auth::user();
$features = $user->getFeatureValue('foo');
The Flagsmith Class can be accessed through Laravel's Container. The returned class is simply flagsmith-php-client
$flagsmith = App::make(Flagsmith::class);