PHPackages                             featurevisor/featurevisor-php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. featurevisor/featurevisor-php

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

featurevisor/featurevisor-php
=============================

Featurevisor SDK for PHP

v2.0.0(3w ago)3301MITPHPPHP ^8.0CI passing

Since Jul 26Pushed 3w ago1 watchersCompare

[ Source](https://github.com/featurevisor/featurevisor-php)[ Packagist](https://packagist.org/packages/featurevisor/featurevisor-php)[ Docs](https://featurevisor.com)[ RSS](/packages/featurevisor-featurevisor-php/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (10)Dependencies (7)Versions (13)Used By (0)

Featurevisor PHP SDK
=====================

[](#featurevisor-php-sdk-)

This is a port of Featurevisor [Javascript SDK](https://featurevisor.com/docs/sdks/javascript/) v3.x to PHP, providing a way to evaluate feature flags, variations, and variables in your PHP applications.

This SDK is compatible with [Featurevisor](https://featurevisor.com/) v3.0 projects and v2 datafiles.

Table of contents
------------------

[](#table-of-contents-)

- [Installation](#installation)
- [Public API](#public-api)
- [Initialization](#initialization)
- [Evaluation types](#evaluation-types)
- [Context](#context)
    - [Setting initial context](#setting-initial-context)
    - [Setting after initialization](#setting-after-initialization)
    - [Replacing existing context](#replacing-existing-context)
    - [Manually passing context](#manually-passing-context)
- [Check if enabled](#check-if-enabled)
- [Getting variation](#getting-variation)
- [Getting variables](#getting-variables)
    - [Type specific methods](#type-specific-methods)
- [Getting all evaluations](#getting-all-evaluations)
- [Sticky](#sticky)
    - [Initialize with sticky](#initialize-with-sticky)
    - [Set sticky afterwards](#set-sticky-afterwards)
- [Setting datafile](#setting-datafile)
    - [Merging by default](#merging-by-default)
    - [Replacing](#replacing)
    - [Loading datafiles on demand](#loading-datafiles-on-demand)
    - [Updating datafile](#updating-datafile)
- [Evaluation details](#evaluation-details)
- [Diagnostics](#diagnostics)
    - [Levels](#levels)
    - [Handler](#handler)
- [Events](#events)
    - [`datafile_set`](#datafile_set)
    - [`context_set`](#context_set)
    - [`sticky_set`](#sticky_set)
    - [`error`](#error)
- [Modules](#modules)
    - [Defining a module](#defining-a-module)
    - [Registering modules](#registering-modules)
- [Child instance](#child-instance)
- [Close](#close)
- [OpenFeature](#openfeature)
    - [Installation](#installation-1)
    - [Provider setup](#provider-setup)
    - [Flag key mapping](#flag-key-mapping)
    - [Context mapping](#context-mapping)
    - [Resolution details](#resolution-details)
    - [Tracking](#tracking)
    - [Using an existing Featurevisor instance](#using-an-existing-featurevisor-instance)
- [CLI usage](#cli-usage)
    - [Test](#test)
    - [Benchmark](#benchmark)
    - [Assess distribution](#assess-distribution)
- [Development of this package](#development-of-this-package)
    - [Setting up](#setting-up)
    - [Running tests](#running-tests)
    - [Releasing](#releasing)
- [License](#license)

Installation
------------

[](#installation)

The Featurevisor PHP SDK requires PHP 8.0 or newer. Install it using [Composer](https://getcomposer.org/):

```
$ composer require featurevisor/featurevisor-php

```

Public API
----------

[](#public-api)

The main runtime API is `Featurevisor::createFeaturevisor()`:

```
use Featurevisor\Featurevisor;

$f = Featurevisor::createFeaturevisor([
  "datafile" => $datafileContent,
]);
```

Most applications only need this factory and the returned `Featurevisor` instance. Public extension and observability APIs include modules, diagnostics, events, and the datafile arrays accepted by the factory.

Treat an instance as request-owned in normal PHP applications. If a long-running parallel runtime shares an instance, serialize calls that mutate or close it. Module, event, and diagnostic callbacks are responsible for synchronizing mutable state that they capture.

Initialization
--------------

[](#initialization)

The SDK can be initialized by passing [datafile](https://featurevisor.com/docs/building-datafiles/) content directly:

```
