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 flags based on Laravel Users (Flagsmith Identities)
- Utilizes Laravel's Queue system to update flags in the background
- Utilizes Laravel's Cache system to store flags in a cache for quick access
- Utilizes Laravel's Task Scheduling system to update flags on a schedule
- Adds a route to utilize Flagsmith's webhooks to update the cache when flags change
Requires PHP 8.2+
Require Laravel-flagsmith using Composer:
composer require clearlyip/laravel-flagsmith
Laravel | Laravel Flagsmith |
---|---|
8.x | 1.x |
9.x | 2.x |
10.x | 3.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 interface Clearlyip\LaravelFlagsmith\Contracts\UserFlags
to your user model. This will give you the ability to access flags directly from your user object.
You can add the following trait Clearlyip\LaravelFlagsmith\Concerns\HasFlagss
to your user model to fulfill the requirements of UserFlags
During initial login user flags are synced through a queue which keeps them as up to date as possible
$user = Auth::user();
$flags = $user->getFlags();
An optional second parameter can be added as the default if the flag does not exist
$user = Auth::user();
$flags = $user->isFlagEnabled('foo');
An optional second parameter can be added as the default if the flag does not exist
$user = Auth::user();
$vakue = $user->getFlagValue('foo');
The Flagsmith Class can be accessed through Laravel's Container. The returned class is simply flagsmith-php-client
$flagsmith = App::make(Flagsmith::class);