featurit/featurit-sdk-symfony
Symfony SDK for integrating Featurit feature flags into your PHP applications. Manage toggles, target users, and control feature rollout from Symfony services with a simple, configurable client.
Architecture fit
services.yaml wiring, tagged services, and event subscribers will not load.Integration feasibility
featurit/php-sdk ^1.0 rather than the bundle.config/featurit.php, FeaturitServiceProvider, facade, FeatureFlags contract, feature: Blade directive, request-context middleware — plus one new piece: a PSR cache adapter backed by Laravel's cache repository, which the 1.0.0 SDK now accepts via injection.services.yaml to learn the intended object graph and cache wiring, then reproduce ~20 lines of it in a service provider.composer why-not the PHP SDK's PSR/HTTP client constraints against our lockfile, and confirm the PHP version matrix.Technical risk
Key questions
CacheRepository in one class?Stack fit
featurit/php-sdk ^1.0 — the Symfony bundle is not a dependency of anything we ship.FeatureFlags interface (isActive(string $flag, ?object $context): bool) with featurit, config, and null drivers is still the single most important decision. It caps lock-in and it is also what insulates us from the SDK's 1.x churn.LaravelCacheStore implementing the SDK's cache contract, bound to a dedicated cache store (Redis, separate key prefix) so flag traffic cannot evict or be evicted by application cache.Migration path
config driver first so every flag has a coded default before any remote dependency exists.Compatibility
1.0.0, no caret) and constrain PSR/HTTP client versions against the host app's lockfile.php artisan config:cache, Octane (client and cache bridge must be stateless or request-scoped), queue workers (long-lived processes holding stale caches), and Dusk/parallel test runs.false — convenient in dev, dangerous in production.Sequencing
Maintenance
Support
Scaling
Failure modes
Ramp-up
services.yaml for intent.FeatureFlags interface, not the SDK. Keep the wrapper's README short and opinionated; treat the SDK as an implementation detail no one else touches.How can I help you explore Laravel packages today?