Couchbase PHP Release Notes
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.
PHP SDK 4.2 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.2 is written to version 3.5 of the SDK API specification (and matching the features available in Couchbase 7.6 and earlier).
Version 4.2.4 (22 October 2024)
Enhancements
-
PCBC-832: Management API - Analytics Management (#177).
-
Core updated to 1.0.3. Release notes: C++ SDK 1.0.3.
Fixes
-
PCBC-1009:
IS_RESOURCE
has been removed from function signatures of the extension, so that they compile with 8.4. -
PCBC-1010: implicit marking of certain parameters as nullable has now been deprecated. Use explicit nullable types where applicable to avoid deprecation warning in PHP 8.4.
-
Fixed
SearchQuery
API docs link in API reference.
Download Links
Checksum |
||||
Source |
||||
Linux |
x86_64 |
PHP 8.1 |
NTS |
|
Linux |
x86_64 |
PHP 8.1 |
ZTS |
|
Linux |
x86_64 |
PHP 8.2 |
NTS |
|
Linux |
x86_64 |
PHP 8.2 |
ZTS |
|
Linux |
x86_64 |
PHP 8.3 |
NTS |
|
Linux |
x86_64 |
PHP 8.3 |
ZTS |
|
Linux |
x86_64 (musl) |
PHP 8.1 |
NTS |
|
Linux |
x86_64 (musl) |
PHP 8.2 |
NTS |
|
Linux |
x86_64 (musl) |
PHP 8.3 |
NTS |
|
MacOS |
x86_64 |
PHP 8.1 |
NTS |
|
MacOS |
x86_64 |
PHP 8.1 |
ZTS |
|
MacOS |
x86_64 |
PHP 8.2 |
NTS |
|
MacOS |
x86_64 |
PHP 8.2 |
ZTS |
|
MacOS |
x86_64 |
PHP 8.3 |
NTS |
|
MacOS |
x86_64 |
PHP 8.3 |
ZTS |
|
MacOS |
arm64 |
PHP 8.1 |
NTS |
|
MacOS |
arm64 |
PHP 8.1 |
ZTS |
|
MacOS |
arm64 |
PHP 8.2 |
NTS |
|
MacOS |
arm64 |
PHP 8.2 |
ZTS |
|
MacOS |
arm64 |
PHP 8.3 |
NTS |
|
MacOS |
arm64 |
PHP 8.3 |
ZTS |
|
Windows |
x86_64 |
PHP 8.1 |
NTS |
|
Windows |
x86_64 |
PHP 8.1 |
ZTS |
|
Windows |
x86_64 |
PHP 8.2 |
NTS |
|
Windows |
x86_64 |
PHP 8.2 |
ZTS |
|
Windows |
x86_64 |
PHP 8.3 |
NTS |
|
Windows |
x86_64 |
PHP 8.3 |
ZTS |
Version 4.2.3 (27 August 2024)
Enhancements
-
Core updated to 1.0.1. Release notes: C++ SDK 1.0.1.
Download Links
Checksum |
||||
Source |
||||
Linux |
x86_64 |
PHP 8.1 |
NTS |
|
Linux |
x86_64 |
PHP 8.1 |
ZTS |
|
Linux |
x86_64 |
PHP 8.2 |
NTS |
|
Linux |
x86_64 |
PHP 8.2 |
ZTS |
|
Linux |
x86_64 |
PHP 8.3 |
NTS |
|
Linux |
x86_64 |
PHP 8.3 |
ZTS |
|
Linux |
x86_64 (musl) |
PHP 8.1 |
NTS |
|
Linux |
x86_64 (musl) |
PHP 8.2 |
NTS |
|
Linux |
x86_64 (musl) |
PHP 8.3 |
NTS |
|
MacOS |
x86_64 |
PHP 8.1 |
NTS |
|
MacOS |
x86_64 |
PHP 8.1 |
ZTS |
|
MacOS |
x86_64 |
PHP 8.2 |
NTS |
|
MacOS |
x86_64 |
PHP 8.2 |
ZTS |
|
MacOS |
x86_64 |
PHP 8.3 |
NTS |
|
MacOS |
x86_64 |
PHP 8.3 |
ZTS |
|
MacOS |
arm64 |
PHP 8.1 |
NTS |
|
MacOS |
arm64 |
PHP 8.1 |
ZTS |
|
MacOS |
arm64 |
PHP 8.2 |
NTS |
|
MacOS |
arm64 |
PHP 8.2 |
ZTS |
|
MacOS |
arm64 |
PHP 8.3 |
NTS |
|
MacOS |
arm64 |
PHP 8.3 |
ZTS |
|
Windows |
x86_64 |
PHP 8.1 |
NTS |
|
Windows |
x86_64 |
PHP 8.1 |
ZTS |
|
Windows |
x86_64 |
PHP 8.2 |
NTS |
|
Windows |
x86_64 |
PHP 8.2 |
ZTS |
|
Windows |
x86_64 |
PHP 8.3 |
NTS |
|
Windows |
x86_64 |
PHP 8.3 |
ZTS |
Version 4.2.2 (24 July 2024)
Fixes
Enhancements
-
PCBC-994: Support for base64 encoded vector types added (#169, #170).
-
Core updated to 1.0.0. Release notes: C++ SDK 1.0.0
Download Links
Checksum |
||||
Source |
||||
Linux |
x86_64 |
PHP 8.1 |
NTS |
|
Linux |
x86_64 |
PHP 8.1 |
ZTS |
|
Linux |
x86_64 |
PHP 8.2 |
NTS |
|
Linux |
x86_64 |
PHP 8.2 |
ZTS |
|
Linux |
x86_64 |
PHP 8.3 |
NTS |
|
Linux |
x86_64 |
PHP 8.3 |
ZTS |
|
Linux |
x86_64 (musl) |
PHP 8.1 |
NTS |
|
Linux |
x86_64 (musl) |
PHP 8.2 |
NTS |
|
Linux |
x86_64 (musl) |
PHP 8.3 |
NTS |
|
MacOS |
x86_64 |
PHP 8.1 |
NTS |
|
MacOS |
x86_64 |
PHP 8.1 |
ZTS |
|
MacOS |
x86_64 |
PHP 8.2 |
NTS |
|
MacOS |
x86_64 |
PHP 8.2 |
ZTS |
|
MacOS |
x86_64 |
PHP 8.3 |
NTS |
|
MacOS |
x86_64 |
PHP 8.3 |
ZTS |
|
MacOS |
arm64 |
PHP 8.1 |
NTS |
|
MacOS |
arm64 |
PHP 8.1 |
ZTS |
|
MacOS |
arm64 |
PHP 8.2 |
NTS |
|
MacOS |
arm64 |
PHP 8.2 |
ZTS |
|
MacOS |
arm64 |
PHP 8.3 |
NTS |
|
MacOS |
arm64 |
PHP 8.3 |
ZTS |
|
Windows |
x86_64 |
PHP 8.1 |
NTS |
|
Windows |
x86_64 |
PHP 8.1 |
ZTS |
|
Windows |
x86_64 |
PHP 8.2 |
NTS |
|
Windows |
x86_64 |
PHP 8.2 |
ZTS |
|
Windows |
x86_64 |
PHP 8.3 |
NTS |
|
Windows |
x86_64 |
PHP 8.3 |
ZTS |
Version 4.2.1 (23 April 2024)
Notable changes in core C++
Enhancements
-
CXXCBC-489: Added support for scoped eventing functions (#548, #554).
-
CXXCBC-470: Distinguish between 'unset' and 'off'
query_profile
(#551).
Fixes
-
CXXCBC-487: Added logic during bootstrap to check if alternate addressing is being used (#545).
-
CXXCBC-503: Added logic to ignore configuration if it contains an empty vBucket map (#556, #558).
-
CXXCBC-30: Fixed inconsistent behaviour when using subdoc opcodes incorrectly (#559).
-
CXXCBC-492: Updated collection_component get_collection_id to use retry strategy (#552).
-
CXXCBC-494: Fixed memory issue in range scan implementation (#549).
-
Always attempt to extract common query code if error has not been set (#561). This fixes quota/rate limit checks for older servers.
Build and Tests Fixes
-
CXXCBC-502: Apply
/bigobj
for SDK objects only (#550). Avoid using globaladd_definitions()
as it might leak to non-C++ languages (likeASM_NASM
on Windows). -
Add feature check for scoped analyze_document in tests (#555)
Download Links
Checksum |
||||
Source |
||||
Linux |
x86_64 |
PHP 8.1 |
NTS |
|
Linux |
x86_64 |
PHP 8.1 |
ZTS |
|
Linux |
x86_64 |
PHP 8.2 |
NTS |
|
Linux |
x86_64 |
PHP 8.2 |
ZTS |
|
Linux |
x86_64 |
PHP 8.3 |
NTS |
|
Linux |
x86_64 |
PHP 8.3 |
ZTS |
|
Linux |
x86_64 (musl) |
PHP 8.1 |
NTS |
|
Linux |
x86_64 (musl) |
PHP 8.2 |
NTS |
|
Linux |
x86_64 (musl) |
PHP 8.3 |
NTS |
|
MacOS |
x86_64 |
PHP 8.1 |
NTS |
|
MacOS |
x86_64 |
PHP 8.1 |
ZTS |
|
MacOS |
x86_64 |
PHP 8.2 |
NTS |
|
MacOS |
x86_64 |
PHP 8.2 |
ZTS |
|
MacOS |
x86_64 |
PHP 8.3 |
NTS |
|
MacOS |
x86_64 |
PHP 8.3 |
ZTS |
|
MacOS |
arm64 |
PHP 8.1 |
NTS |
|
MacOS |
arm64 |
PHP 8.1 |
ZTS |
|
MacOS |
arm64 |
PHP 8.2 |
NTS |
|
MacOS |
arm64 |
PHP 8.2 |
ZTS |
|
MacOS |
arm64 |
PHP 8.3 |
NTS |
|
MacOS |
arm64 |
PHP 8.3 |
ZTS |
|
Windows |
x86_64 |
PHP 8.1 |
NTS |
|
Windows |
x86_64 |
PHP 8.1 |
ZTS |
|
Windows |
x86_64 |
PHP 8.2 |
NTS |
|
Windows |
x86_64 |
PHP 8.2 |
ZTS |
|
Windows |
x86_64 |
PHP 8.3 |
NTS |
|
Windows |
x86_64 |
PHP 8.3 |
ZTS |
Version 4.2.0 (17 March 2024)
Known Issues
-
CXXCBC-447: This version of the SDK will not be able to connect to a cluster utilizing alternate addressing. The recommendation is to wait to upgrade to a version of the {name-sdk} that contains C++ 1.0.0-dp.15 (or later).
Enhancements
-
PCBC-970: SDK support added for Scoped Search Indexes (#147).
-
PCBC-968: Support addd for
maxTTL
value of -1 for collection 'no expiry' (#144). -
PCBC-965: Adedd
DocumentNotLocked
error to corresponds with the C++ error codecouchbase::errc::key_value::document_not_locked
(#142). -
PCBC-960: Merge protostellar branch to master, in preparation for
couchbase2
protocol (#138, #153).
Fixes
-
PCBC-964: The SDK no longer fires the close operation asynchronously, instead it will now wait until the core instance is completely destroyed Wait until the core connection is closed (#141).
-
PCBC-972: Fixed C++ detection on MacOS X, so that the SDK now installs correctly on Sonoma (#145).
-
Added missing
use
statement in classDecrementOptions
(#146). -
Updated core and renamed
query_index_create
fields to keys (#148).
Notable changes in core C++
Since 1.0.0-dp.14
-
CXXCBC-482: Updated range scan orchestrator to use best effort retry strategy by default (#542).
-
CXXCBC-481: Fixed potential crash when parsing search result hits (#541).
-
CXXCBC-461: Updated ping operation to not send to nodes that have not completed bootstrap (#540).
-
CXXCBC-480: Fixed capabilities check for replica LookupIn operations (#539).
-
CXXCBC-479: Fixed capabilities check for replica
LookupIn
operations (#537). -
CXXCBC-336: Updated DNS config to not fallback to 8.8.8.8 if SDK cannot obtain system DNS server (#533).
Since 1.0.0-dp.13
-
CXXCBC-456: Updated configuration logic when 0x0d (
EConfigOnly
) status code is received to have the SDK request new configuration and send current operation to retry orchestrator (#523). -
CXXCBC-191: Index Key Encoding (#519) — in line with the rfc, the
fields
paramaeter is now remamed to keys in the Public API’screate_index()
, and each index key provided tocreate_index()
is encoded by surrounding them with backticks. -
Added
full_set
option to view query options (#517).
-
CXXCBC-345: Added range scan improvements and resolved concurrency issues (#525).
-
CXXCBC-284: Updated config polling to not use session that is not bootstrapped (#528).
-
CXXCBC-447: Updated bootstrap logic to use addresses from the config to bootstrap bucket (#516).
-
CXXCBC-450: Updated bootstrap logic to reset bootstrap handler before re-bootstrap (#524).
-
We do not want any actions from the old bootstrap handler once the session decided to re-bootstrap. For example, bucket could not be selected, but we might still get configuration responses before socket reset.
-
-
CXXCBC-452: Updated capabilities and fail fast when selected feature is not available (#522, #513).
-
CXXCBC-431: Added check for history retention bucket capability in collection create/update (#502, #505).
-
CXXCBC-421: Updated query operation to return
feature_not_available
if query preserve expiry is specified but is not supported on the server(#510).
Since 1.0.0-dp.12
-
CXXCBC-346: Support added for
maxTTL
value of -1 for collection 'no expiry' (#500). -
CXXCBC-442: Transcoder support - which was previously limited in the SDK to
JSON
andRawBinary
transcoders — has now been extended toraw_json
andraw_string
transcoders (#514, #515). -
CXXCBC-440: Support added for Scoped Search Indexes (#512, #513).
-
CXXCBC-284: Updated config polling to not use session that is not bootstrapped, to reduce network traffic when polling for cluster configuration (#504, #528).
-
CXXCBC-422: Added insufficient credentials error code to common query error code conversion (#511).
-
CXXCBC-421: Updated query operation to return
feature_not_available
if query preserve expiry is specified but is not supported on the server(#510). -
CXXCBC-426: Under testing, a get with very large projection was returning fields outside of the projection. This has been fixed, with the projections now set correctly, and the SDK should fall back to a full-doc fetch and return a valid projected result (#499).
Since 1.0.0-dp.11
-
CXXCBC-404: Fixed
unlock
operations to exposeKV_LOCKED
status ascas_mismatch
(#479). -
CXXCBC-403: Updated
not_my_vbucket
KV response to allow retries (#480). -
CXXCBC-368: Added support for subscribing to clustermap notifications to speed up failover (#490).
-
CXXCBC-419: Updated MCBP protocol parser to start with clean state. Fixes protocol parsing issues when bootstrap sequence is being retried (#496).
-
CXXCBC-409: Added handling for
index does not exist
query error (#492). -
CXXCBC-391: Fixed transactions API inconsistencies (#482):
-
Removed
kv_timeout
, -
Renamed
expiration_time
totimeout
.
New features and enhancements
-
CXXCBC-100: Added ability to set timeout for ping (#486).
-
CXXCBC-412: Added support for the
document_not_locked
(0x0e) KV status, mapping it to theerrc::key_value::document_not_locked
error code (#491).
Since 1.0.0-dp.10
-
CXXCBC-383: The
subdoc_doc_too_deep
(0xc4) KV status now returns a`path_too_deep` error code (#455).
-
CXXCBC-377: Implemented
ExtParallelUnstaging
in transactions (#457). -
CXXCBC-363: Added examples for bulk operations (#442).
-
Added more information to diagnose timeouts on NMV responses (#475).
Download Links
Checksum |
||||
Source |
||||
Linux |
x86_64 |
PHP 8.1 |
NTS |
|
Linux |
x86_64 |
PHP 8.1 |
ZTS |
|
Linux |
x86_64 |
PHP 8.2 |
NTS |
|
Linux |
x86_64 |
PHP 8.2 |
ZTS |
|
Linux |
x86_64 |
PHP 8.3 |
NTS |
|
Linux |
x86_64 |
PHP 8.3 |
ZTS |
|
Linux |
x86_64 (musl) |
PHP 8.1 |
NTS |
|
Linux |
x86_64 (musl) |
PHP 8.2 |
NTS |
|
Linux |
x86_64 (musl) |
PHP 8.3 |
NTS |
|
MacOS |
x86_64 |
PHP 8.1 |
NTS |
|
MacOS |
x86_64 |
PHP 8.1 |
ZTS |
|
MacOS |
x86_64 |
PHP 8.2 |
NTS |
|
MacOS |
x86_64 |
PHP 8.2 |
ZTS |
|
MacOS |
x86_64 |
PHP 8.3 |
NTS |
|
MacOS |
x86_64 |
PHP 8.3 |
ZTS |
|
MacOS |
arm64 |
PHP 8.1 |
NTS |
|
MacOS |
arm64 |
PHP 8.1 |
ZTS |
|
MacOS |
arm64 |
PHP 8.2 |
NTS |
|
MacOS |
arm64 |
PHP 8.2 |
ZTS |
|
MacOS |
arm64 |
PHP 8.3 |
NTS |
|
MacOS |
arm64 |
PHP 8.3 |
ZTS |
PHP SDK 4.1 Releases
Version 4.1.6 (10 October 2023)
Source |
|
Checksum |
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 inupdate_collection
response (#450).
Version 4.1.5 (21 August 2023)
Source |
|
Checksum |
Enhancements
-
PCBC-939: Added support for query with Read from Replica (#118).
-
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
-
CXXCBC-333: Fixed parsing 'resolv.conf' on Linux (#416).
-
The library might not ignore trailing characters when reading nameserver address from the file.
-
-
CXXCBC-335: now logging connection options for visibility (#417).
-
CXXCBC-343: Continue bootsrap if DNS-SRV resolution fails (#422).
-
CXXCBC-242: SDK Support for Native KV Range Scans (#419, #423, #424, #426, #428, #431, #432, #433, #434).
-
CXXCBC-339: Disable older TLS protocols (#418).
Version 4.1.4 (26 May 2023)
API documentation: https://docs.couchbase.com/sdk-api/couchbase-php-client-4.1.4
Source |
|
Checksum |
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
andresolve_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)
API documentation: https://docs.couchbase.com/sdk-api/couchbase-php-client-4.1.3
Source |
|
Checksum |
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)
API documentation: https://docs.couchbase.com/sdk-api/couchbase-php-client-4.1.2
Source |
|
Checksum |
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 atransaction_operation_failed
This has been fixed, and anempty 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)
API documentation: https://docs.couchbase.com/sdk-api/couchbase-php-client-4.1.1
Source |
|
Checksum |
Fixes
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 inlookup_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
withmt19937_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:
-
-
Build system fixes:
-
Enhancements:
Version 4.1.0 (20 January 2023)
Version 4.1.0 brings a number of improvements related to internal connection behavior.
API documentation: https://docs.couchbase.com/sdk-api/couchbase-php-client-4.1.0
Source |
|
Checksum |
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.
API documentation: https://docs.couchbase.com/sdk-api/couchbase-php-client-4.0.0
Source |
|
Checksum |
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:
-
Although no longer supported, documentation for older releases continues to be available in our docs archive.