PackageTrack
Sign in Get early access

configcat/configcat-client

ConfigCat is a feature flag, feature toggle, and configuration management service. That lets you launch new features and change your software configuration remotely without actually (re)deploying code. ConfigCat even helps you do controlled roll-outs like canary releases and blue-green deployments.

v9.2.1 1.3M downloads/mo #3560 most downloaded on Packagist configcat/php-sdk

What this package is like to depend on

Last release 7 months ago

19 Jan 2026

Ships unpredictably

gaps range from 2 weeks to 1.7 years

Some releases are documented

notes for 10 of 37 stable releases

Nothing withdrawn

no release was ever pulled

8 years old

37 releases · first in 2019

1 release in the last 12 months

see the full history below

Release timeline

37 releases · Jan 2019 to Jan 2026
2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 37
  1. v9.2.1 19 Jan 2026
    Release notes

    Changed

    • Release for #57
    Open source →
  2. v9.2.0 13 May 2024
    Release notes

    Removed

    • Support for Guzzle v6 due to switching to PSR-18 ClientInterface, which is only supported in Guzzle v7. #49
    Open source →
  3. v9.1.1 15 Apr 2024
    Release notes

    Added

    • In-memory cache layer to custom cache implementations.
    • Coverage report upload to SonarCloud.
    Open source →
  4. v9.1.0 25 Mar 2024
    Release notes

    New features and improvements:

    • When an error occurs and there is a related Throwable object, pass it to the onError hook handlers. (#46)
    • When forceRefresh fails and there is a related Throwable object, expose it in RefreshResult via the new getErrorException property.
    • Handle unexpected errors in the forceRefresh method (to stop potential unhandled exceptions thrown by the evaluation logic from bringing down the consumer's application).

    Breaking changes:

    • Rename the getError property to getErrorMessage in RefreshResult. (Low impact expected.)
    • Add an extra parameter of type ?Throwable to the onError hook handlers. (Low impact expected.)
    • Don't include event_id in the log message but leave it up to the actual logger implementation to choose the log message format. (Affects consumers using custom logging only.)
    Open source →
  5. v9.0.0 04 Mar 2024
    Release notes

    New features and improvements:

    • Add support for the new Config JSON v6 format: update the config model and implement new features in setting evaluation logic. (#44)
    • Overhaul setting evaluation-related logging and make it consistent across SDKs.
    • Improve consistency of config JSON deserialization error reporting.
    • Add exception message and stack trace to the log format of the default logger.
    • When evaluation fails and there is a related Throwable object, expose it in EvaluationDetails via the new getErrorException property.
    • Performance improvements to setting evaluation (building of evaluation log is expensive, so it is skipped when info level logging is turned off).

    Bug fixes:

    • Fix inconsistent logging of error 1000 in the case of flag overrides.

    Breaking changes (listed in the order of expected impact):

    • Rename the getError property to getErrorMessage in EvaluationDetails.
    • Rename the getMatchedEvaluationRule property to getMatchedTargetingRule and the getMatchedEvaluationPercentageRule property to getMatchedPercentageOption in EvaluationDetails.
    • Move config JSON attribute descriptor classes from the ConfigCat\Attributes to the ConfigCat\ConfigJson namespace and update them to support config JSON schema v6.
    Open source →
  6. v8.1.0 28 Sep 2023
    Release notes

    Added

    • Ability to override the default Guzzle HTTP client with a custom one:

      • The user has to implement the \ConfigCat\Http\FetchClientInterface to give the SDK a custom \Psr\Http\Client\ClientInterface implementation.
        namespace ConfigCat\Http;
        
        interface FetchClientInterface
        {
            public function getClient(): \Psr\Http\Client\ClientInterface;
            public function createRequest(string $method, string $uri): \Psr\Http\Message\RequestInterface;
        }
      • There's a new \ConfigCat\ClientOptions::FETCH_CLIENT configuration option where the SDK accepts a custom \ConfigCat\Http\FetchClientInterface implementation. This option defaults to \ConfigCat\Http\GuzzleFetchClient.
      • The Guzzle specific \ConfigCat\ClientOptions::REQUEST_OPTIONS and \ConfigCat\ClientOptions::CUSTOM_HANDLER configuration options have been marked as deprecated. Options for Guzzle are available through the \ConfigCat\Http\GuzzleFetchClient::create() method:
        $client = new \ConfigCat\ConfigCatClient('<SDK-KEY>', [
             \ConfigCat\ClientOptions::FETCH_CLIENT => \ConfigCat\Http\GuzzleFetchClient::create([
                 \GuzzleHttp\RequestOptions::CONNECT_TIMEOUT => 5,
             ]),
         ]);
      • The direct dependency to guzzlehttp/guzzle was not removed yet due to minor upgrade backward compatibility. It can be moved to suggest at the next major version bump.
    • php-cs-fixer linter and phpstan static analyzer to the CI workflow. The whole project was reformatted and analyzed, this is why this PR is bigger than usual.

    Removed

    • Dependency to Monolog. It was replaced by a simple default logger that writes to error_log(). It's still replaceable with any psr/log implementation.
    Open source →
  7. v8.0.0 28 Aug 2023
    Release notes

    Changed

    • Standardized config cache key generation algorithm and cache payload format to allow shared caches to be used by SDKs of different platforms.
    • getFetchTimeUnixSeconds() getter of EvaluationDetails was renamed to getFetchTimeUnixMilliseconds() and now returns the fetch time in float Unix milliseconds.

    Removed

    • getVariationId() / getAllVariationIds() methods. Alternative: getValueDetails() / getAllValueDetails()
    Open source →
  8. v7.1.1 20 Jun 2023
    Release notes

    Fixed

    • Wrong return value of getValueDetails() if a non-existent flag was requested.
    Open source →
  9. v7.1.0 08 Jun 2023
    Release notes

    Fixed

    • The URL passed via the BASE-URL option was always overridden by the CDN URL from the downloaded config.json.
    Open source →
  10. v7.0.1 29 Mar 2023
    Release notes
    • Fixed monolog dependency version for #29
    • Fixed reported SDK version in X-ConfigCat-UserAgent HTTP header.
    Open source →
  11. v7.0.0 15 Mar 2023

    Nothing published for this version

  12. v6.2.1 16 Nov 2022

    Nothing published for this version

  13. v6.2.0 11 Nov 2022

    Nothing published for this version

  14. v6.1.0 05 Aug 2022

    Nothing published for this version

  15. v6.0.0 21 Mar 2022

    Nothing published for this version

  16. v5.4.1 10 Mar 2022

    Nothing published for this version

  17. v5.4.0 13 Jan 2022

    Nothing published for this version

  18. v5.3.1 15 Jul 2021

    Nothing published for this version

  19. v5.3.0 09 Jul 2021

    Nothing published for this version

  20. v5.2.1 31 May 2021

    Nothing published for this version

  21. v5.2.0 22 Jan 2021

    Nothing published for this version

  22. v5.1.0 04 Dec 2020

    Nothing published for this version

  23. v5.0.0 02 Oct 2020

    Nothing published for this version

  24. v4.1.0 14 Aug 2020

    Nothing published for this version

  25. v4.0.1 27 May 2020

    Nothing published for this version

  26. v4.0.0 09 Apr 2020

    Nothing published for this version

  27. v3.0.3 13 Mar 2020

    Nothing published for this version

  28. v3.0.2 26 Feb 2020

    Nothing published for this version

  29. v3.0.1 24 Feb 2020

    Nothing published for this version

  30. v3.0.0 23 Feb 2020

    Nothing published for this version

  31. v2.0.3 25 Jan 2020

    Nothing published for this version

  32. v2.0.2 25 Dec 2019

    Nothing published for this version

  33. v2.0.1 04 Dec 2019

    Nothing published for this version

  34. v2.0.0 16 Nov 2019

    Nothing published for this version

  35. v1.2.0 26 Jul 2019

    Nothing published for this version

  36. v1.1.0 17 Jul 2019

    Nothing published for this version

  37. 1.0.0 08 Jan 2019

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive