Skip to content

Installation

Ahmed Abbas edited this page Apr 8, 2026 · 3 revisions

PHP SDK — Installation

Source Repository: convertcom/php-sdk | Wiki | Packagist

Requirements

  • PHP 8.2, 8.3, or 8.4
  • A PSR-18 HTTP client (e.g., guzzlehttp/guzzle ^7)
  • A Convert Experiences account with an SDK key

The SDK auto-discovers your PSR-18 client via php-http/discovery. Install any compliant client — no adapter code needed.

Install via Composer

composer require convertcom/php-sdk

This installs the SDK and all internal packages.

Install a PSR-18 HTTP Client

You must also install a PSR-18 HTTP client. For example:

composer require guzzlehttp/guzzle

Any PSR-18 compliant client works (e.g., symfony/http-client, php-http/curl-client).

PSR Standards

Standard Package Version Purpose Required
PSR-3 psr/log ^3.0 Logging interface Bundled (installed automatically)
PSR-16 psr/simple-cache ^3.0 Simple cache (config + visitor data) Bundled (installed automatically)
PSR-17 (auto-discovered) HTTP message factories User must install one
PSR-18 (auto-discovered) HTTP client User must install one

Dependencies

The following packages are pulled in automatically via Composer:

Package Version Purpose
psr/log ^3.0 PSR-3 logging interface
psr/simple-cache ^3.0 PSR-16 simple cache interface
php-http/discovery ^1.19 Auto-discovers PSR-18 HTTP client and PSR-17 factories

Fullstack Project Constraints

This SDK is designed for Fullstack projects (server-side A/B testing, feature flags, and feature rollouts). It supports a/b_fullstack and feature_rollout experience types with fullStackFeature variation changes only.

All entities must have a unique identifier key (a string) when defined in the Convert web interface.

Supported Experience Types

Type Description
a/b_fullstack A standard A/B experience
feature_rollout An experience with only one non-original variation

Supported Feature Variable Types

Type Description
boolean True/false
integer Whole number
string Text
json JSON object or array

Next Steps

Clone this wiki locally