togul / laravel-sdk
Laravel integration for Togul Feature Flag Service
v3.1.0
2026-09-23 11:44 UTC
Requires
- php: >=8.1
- illuminate/support: ^10.0|^11.0|^12.0
- togul/php-sdk: ^3.1
Requires (Dev)
- open-feature/sdk: ^2.3
- orchestra/testbench: ^8.0|^9.0|^10.0
- phpunit/phpunit: ^10.0|^11.0
Suggests
- open-feature/sdk: Registers Togul as the global OpenFeature provider (^2.3)
Provides
None
Conflicts
None
Replaces
None
README
Laravel integration layer for the Togul PHP SDK.
Install
composer require togul/laravel-sdk php artisan vendor:publish --tag=togul-config
Configuration
Add to .env:
TOGUL_API_KEY=your-environment-api-key TOGUL_ENVIRONMENT=production TOGUL_TIMEOUT=5 TOGUL_CACHE_TTL=30 TOGUL_RETRY_COUNT=2
Usage
Via facade
use Togul\Laravel\Facades\Togul; $result = Togul::evaluate('new-dashboard', [ 'user_id' => (string) auth()->id(), ]); var_dump($result->enabled); // true var_dump($result->valueType); // "string" var_dump($result->value); // "dark_mode" var_dump($result->reason); // "rule_match"
Via dependency injection
use Togul\TogulClient; public function __invoke(TogulClient $togul) { $result = $togul->evaluate('new-dashboard', [ 'user_id' => (string) auth()->id(), ]); }
Via middleware
Route::get('/dashboard', DashboardController::class) ->middleware('togul:new-dashboard');
EvaluateResult
evaluate() returns an EvaluateResult object:
$result->flagKey; // string — flag identifier $result->enabled; // bool — whether the flag is on $result->valueType; // string — "boolean" | "string" | "number" | "json" $result->value; // mixed — the resolved value $result->reason; // string — e.g. "rule_match", "default"
Cache invalidation
Togul::invalidateFlag('new-dashboard'); // single flag Togul::invalidateCache(); // all flags
OpenFeature
When open-feature/sdk is installed, the service provider registers Togul\OpenFeature\TogulProvider as the global OpenFeature provider, built from the same TogulClient singleton.
composer require open-feature/sdk
use OpenFeature\OpenFeatureAPI; use OpenFeature\implementation\flags\EvaluationContext; $enabled = OpenFeatureAPI::getInstance() ->getClient() ->getBooleanValue('new-dashboard', false, new EvaluationContext((string) auth()->id()));
TOGUL_OPENFEATURE_REGISTER=true # set false to register providers yourself TOGUL_OPENFEATURE_TARGETING_KEY=user_id
See the PHP SDK README for how reasons and errors are mapped.
Notes
TOGUL_API_KEYmust be an environment API key, not a user JWT.- This package wraps
togul/php-sdk; evaluation behavior follows the PHP SDK.