SDK Release Notes

  • reference
    +
    Release notes for the Couchbase PHP Client.

    These pages cover the 4.x versions of the Couchbase PHP SDK.

    For download instructions, see the installation page.

    For older, unsupported releases, see the documentation archive.

    PHP SDK 4.1 Releases

    We always recommend using the latest version of the SDK — it contains all of the latest security patches and support for new and upcoming features. All patch releases for each dot minor release should be API compatible, and safe to upgrade; any changes to expected behavior are noted in the release notes that follow.

    PHP SDK 4.1 is written to version 3.4 of the SDK API specification (and matching the features available in Couchbase 7.1 and earlier).

    Version 4.1.6 (10 October 2023)

    Source

    couchbase-4.1.6.tgz

    Checksum

    couchbase-4.1.6.sha256sum

    Enhancements

    • PCBC-956: Updated wrapper-side bucket settings — to now use new BucketSettings optional fields in underlying C++ core (#132).

    • PCBC-950: Added support to bucket settings for no dedup feature (#131).

    • PCBC-955: Preventing trailing garbage in encoded CAS value (#134).

    • Updates to support PHP 8.3: zend_bool was removed from 8.3.

    Underlying C++ SDK Core Changes

    • CXXCBC-376: Changed what 'create' and 'update' bucket operations send to the server. Unrequired BucketSettings fields are now set to optional, and are not sent unless the settings are explicitly specified. (#451).

    • CXXCBC-374: The SDK should now return a 'bucket_exists' error when the bucket already exists during a 'create' operation. (#449).

    • CXXCBC-359: Reduced the default timeout for idle HTTP connections to 1 second. The previous default (4.5 seconds) was too close to the 5-second server-side timeout, and could lead to spurious request failures. (#448).

    • CXXCBC-367, CXXCBC-370: Added history retention settings to buckets/collection management (#446).

    • CXXCBC-119: Return booleans for subdocument 'exists' operation, instead of error code (#444, #452).

    • Detect collection_not_found error in update_collection response (#450).

    Version 4.1.5 (21 August 2023)

    Source

    couchbase-4.1.5.tgz

    Checksum

    couchbase-4.1.5.sha256sum

    Enhancements

    • PCBC-939: Added support for query with Read from Replica (#118).

    • PCBC-831: Implemented search index management (#115).

    • PCBC-945: Expiry options for increment/decrement are now exposed, as they were before 4.0.0 (#120).

    • PCBC-937: Fixed removeMulti, which now correctly removes documents (#123).

    • PCBC-938: Override exception constructor in PHP Extension, which allows to initialize context in derived classes (#117).

    • PCBC-940: Added support for subdoc Read from Replica (#121).

    • PCBC-884: Added support for Native KV range scans (#122, #127).

    Underlying C++ SDK Core

    Version 4.1.4 (26 May 2023)

    Source

    couchbase-4.1.4.tgz

    Checksum

    couchbase-4.1.4.sha256sum

    Enhancements

    • Added couchbase:: namespace to durability_level, which fixes using Sync Durability. (#102)

    • PCBC-934: Fixed setting timeout for transactions.

    Underlying C++ SDK Core

    • CXXCBC-327: Bundled Mozilla certificates with the library (#405, #408). Source: https://curl.se/docs/caextract.html. Use the disable_mozilla_ca_certificates connection string option to disable the bundled certificates.

    • CXXCBC-324: Port and network name now checked on session restart, improving performance during rebalance (#401).

    • CXXCBC-323: bootstrap_timeout and resolve_timeout can now be used in the connection string (#400).

    • Introduced dump_configuration option for debugging. (#398) It logs cluster configuration at trace level.

    Version 4.1.3 (13 April 2023)

    Source

    couchbase-4.1.3.tgz

    Checksum

    couchbase-4.1.3.sha256sum

    Enhancements

    • PCBC-915: Fixed incorrect handling of timestamps as expiry in mutation options (#88).

    • PCBC-828: Implemented collection management (#89).

    • PCBC-918: Extra attributes in ExistsResult (deleted, expiry, flags, and sequenceNumber) are now optional (#95).

    Underlying C++ SDK Core

    • CXXCBC-31: Allow the use of schemaless connection strings (e.g. "cb1.example.com,cb2.example.com") (#394).

    • CXXCBC-318: Always try TCP if UDP fails in DNS-SRV resolver (#390).

    • CXXCBC-320: Negative expiry in atr was leaving docs in a stuck state — this has been fixed, with expiry atr now becoming an int32_t (#393).

    • CXXCBC-310: Improved shutdown of the LostTxnCleanup thread (#389).

    Version 4.1.2 (20 March 2023)

    Source

    couchbase-4.1.2.tgz

    Checksum

    couchbase-4.1.2.sha256sum

    Enhancements

    • PCBC-888: Added new method Collection#queryIndexes that allows to manage query indexes defined for the collection (#68).

    • Added optional context to CouchbaseException constructor (#85).

    Underlying C++ SDK Core

    • CXXCBC-144: Search query on collections no longer requires you to pass in the scope name — it is inferred from the index (#379).

    • CXXCBC-145: Search query request, raw option added (#380).

    • CXXCBC-194: The SDK now supports the ExtThreadSafe transaction extension (#374, #376).

    • CXXCBC-316: When a document is removed in a transaction, and then a call made to get_optional, we expect to just get an empty optional. However, the handling was raising a transaction_operation_failed This has been fixed, and an empty optional will now be returned (#385).

    • CXXCBC-310: Fixed race condition in transaction_context state machine (#386, #378).

    Version 4.1.1 (22 February 2023)

    Source

    couchbase-4.1.1.tgz

    Checksum

    couchbase-4.1.1.sha256sum

    Enhancements

    • PCBC-869: Implemented changePassword for management API (#55, #56)

    • PCBC-891: Append extension version info to HELLO indentifier (#58)

    • PCBC-901: Attach error details to management exceptions (#71)

    • Increase required PHP version up to 8.0 (#76)

    Fixes

    • PCBC-890: Scope must implement ScopeInterface (#57)

    • PCBC-899: Ensure the connection will be closed on error (#70)

    • PCBC-900: Don’t set "function" property on exceptions. (#74)

    • PCBC-905: Don’t dereference empty optional if option is not set (#75)

    • PCBC-907: Assign meta to view query result (#79)

    • Fix missing header for GCC 13 (#63)

    Underlying C++ SDK Core

    Notable Changes in C++ SDK 1.0.0-dp.4

    • CXXCBC-275: Update implementation query context fields passed to the server. In future versions of the server versions it will become mandatory to specify context of the statement (bucket, scope and collection). This change ensures that both future and current server releases supported transparently.

    • CXXCBC-296: Force PLAIN SASL auth if TLS enabled. Using SCRAM SASL mechanisms over TLS protocol is unnecesary complication, that slows down initial connection bootstrap and potentially limits server ability to improve security and evolve credentials management.

    • CXXCBC-295: The get with projections opration should not fail if one of the the paths is missing in the document, because the semantics is "get the partial document" and not "get individual fields" like in lookup_in operation.

    • CXXCBC-294: In the Public API, if get operation requested to return expiry time, zero expiry should not be interpreted as absolute expiry timestamp (zero seconds from UNIX epoch), but rather as absense of the expiry.

    • CXXCBC-291: Allow to disable mutation tokens for Key/Value mutations (use enable_mutation_tokens in connection string).

    • Resource management and performance improvements:

      • Fix tracer and meter ref-counting (#370)

      • Replace minstd_rand with mt19937_64, as it gives less collisions (#356)

      • CXXCBC-285: Write to sockets from IO threads, to eliminate potential race conditions. (#348)

      • Eliminate looping transform in mcbp_parser::next (#347)

      • CXXCBC-205: Use thread-local UUID generator (#340)

      • CXXCBC-293: Performance improvements:

        • Speed up UUID serialization to string (#346)

        • Don’t allow to copy mcbp_message objects (#345)

        • Avoid extra allocation and initialization (#344)

    • Build system fixes:

      • Fix build with gcc-13 (#372)

      • Fix gcc 12 issue (#367)

    • Enhancements:

      • Include bucketless KV service when ping is requested. (#339)

      • Include OS name in SDK identifier (#349)

    Version 4.1.0 (20 January 2023)

    Version 4.1.0 brings a number of improvements related to internal connection behavior.

    Source

    couchbase-4.0.0.tgz

    Checksum

    couchbase-4.0.0.sha256sum

    New Features

    • PCBC-824: Implemented replica reads.

    • PCBC-630: Implemented legacy durability for mutations (replicateTo/persistTo options)

    • PCBC-880: Support for configuration profiles

    Fixes

    • PCBC-889: Fixed behaviour of 'skip' SearchOption.

    • Bug fixes: logger and build improvements

    Caveats

    There are no pre-built binaries for the Windows platform of PHP SDK 4.1.0. But there are steps in WINDOWS.md, that describe how to build an extension along with PHP interpreter.

    PHP SDK 4.0 Releases

    PHP SDK 4.0 is written to version 3.3 of the SDK API specification (and matching the features available in Couchbase 7.1 and earlier).

    Version 4.0.0 (11 May 2022)

    Version 4.0.0 is the first major release of the next generation PHP SDK, built on the Couchbase++ library — featuring multi-document distributed ACID transactions, and bringing a number of improvements related to internal connection behavior.

    Source

    couchbase-4.0.0.tgz

    Checksum

    couchbase-4.0.0.sha256sum

    New Features

    • PCBC-806: Migrated core to Couchbase++.

    • PCBC-797: Updated the Query Index management API to use scopes and collections.

    • PCBC-836: Added support for the Transactions API.

    Caveats

    There are no pre-built binaries for the Windows platform of PHP SDK 4.0.0. But there are steps in WINDOWS.md, that describe how to build an extension along with PHP interpreter.

    Older Releases

    See: