For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Sign inTry it free
DocsGuidesSDKsIntegrationsAPI docsTutorialsFlagship blog
DocsGuidesSDKsIntegrationsAPI docsTutorialsFlagship blog
  • SDKs
    • SDK concepts
    • SDK features
    • Client-side SDKs
    • Server-side SDKs
    • AI SDKs
    • Edge SDKs
    • OpenFeature providers
      • .NET (server-side) provider
      • Java provider
      • Node.js (server-side) provider
      • PHP provider
    • Observability SDKs
    • Relay Proxy
Sign inTry it free
LogoLogo
On this page
  • Overview
  • Get started
  • Version compatibility
  • Install the provider
  • Initialize the provider
  • Construct a context
  • Evaluate a context
SDKsOpenFeature providers

OpenFeature provider for PHP SDK

Was this page helpful?
Previous

Observability SDKs

Next
Built with

Overview

This topic documents how to get started with the LaunchDarkly OpenFeature provider for the PHP SDK.

Provider quick links

LaunchDarkly’s OpenFeature providers are open source. In addition to this reference guide, we provide source, API reference documentation, and a sample application:

ResourceLocation
OpenFeature Provider API documentationProvider API docs
GitHub repositoryopenfeature-php-server
Sample applicationSample OpenFeature PHP provider application
Published modulePackagist

Get started

The LaunchDarkly OpenFeature provider for the PHP SDK is intended for use in multi-user systems such as web servers and application. It is not intended for use in desktop and embedded systems applications.

Follow these instructions to start using the LaunchDarkly OpenFeature provider for the PHP SDK in your application.

Version compatibility

The LaunchDarkly OpenFeature provider for the PHP SDK is compatible with the OpenFeature PHP SDK v2.x and above.

The provider is compatible with PHP 8.1+.

Install the provider

First, add the LaunchDarkly OpenFeature package:

Shell
$composer require launchdarkly/openfeature-server

Next, import the OpenFeature namespaces in your application code:

LaunchDarkly PHP provider
1use OpenFeature\OpenFeatureAPI;
2use OpenFeature\implementation\flags\Attributes;
3use OpenFeature\implementation\flags\EvaluationContext;

Initialize the provider

After you install and import the provider, create a single, shared instance of Provider. Specify your SDK key here to authorize your application to connect to a particular environment within LaunchDarkly.

Here’s how:

PHP
1$config = [];
2$provider = new LaunchDarkly\OpenFeature\Provider("YOUR_SDK_KEY", $config);
3$api = OpenFeatureAPI::getInstance();
4$api->setProvider($provider);
5
6$client = $api->getClient("hello-client", 1);

The configuration options are from the LaunchDarkly PHP SDK. To learn more about the configuration options available, read Configuration.

The PHP provider uses an SDK key

The LaunchDarkly PHP provider uses an SDK key. Keys are specific to each project and environment. They are available on the SDK keys page under Settings. To learn more about key types, read Keys.

Construct a context

A context is a generalized way of referring to the people, services, machines, or other resources that encounter feature flags in your product. The OpenFeature specification calls these evaluation contexts.

In the LaunchDarkly provider, contexts:

  • always have a particular context kind. If you do not specify a kind, the provider treats the context as having a “user” kind. To specify a different kind, including a multi-context, you must include a kind attribute.
  • must have a targeting key. This is optional in the OpenFeature specification, but LaunchDarkly requires a key for evaluation. You can specify this using targetingKey, as in the OpenFeature specification, or key, which is the typical LaunchDarkly identifier for the targeting key.

Here are examples of a context:

1$context = new EvaluationContext("example-user-key");

For additional examples, read OpenFeature specific considerations in the provider GitHub repository.

Evaluate a context

To evaluate feature flags for a context, use the OpenFeature Evaluation API. For example:

Evaluate a context
1$flagValue = $client->getBooleanValue("example-flag-key", false, $context);