PHP Client Library Release Notes

  • 7.5.2
    Release Date: March 10, 2020


    • Add OPT_SCAN_RPS_LIMIT scan option. OPT_SCAN_RPS_LIMIT limits scans by records per second. Thanks to vityank.

    • Add OPERATOR_DELETE. OPERATOR_DELETE allows deletion of entire records via operate and operateOrdered. Thanks to vityank.

    • Add NOBINS query option. Queries made with the NOBINS option will not return record's bins.

  • 7.4.2
    Release Date: December 30, 2019


    • Breaking Change: Switch to C client 4.6.0 consistency policies. Applications using previous PHP client versions should make changes according to the new consistency policies and see the docs when upgrading. Thanks to vityank.

    • Breaking Change: - Discontinued support for PHP 7.1.

    • Support PHP 7.2 and 7.3.

    • Update to C client 4.6.9.

    • Added missing zend_arg_info thanks to sustmi.

    • Add support for map write flags. Thanks to vityank.

    • Support C client error code AEROSPIKE_ERR_OP_NOT_APPLICABLE.

  • 7.4.1
    Release Date: February 20, 2019


    • Breaking Change: Shared Memory layout has changed. Therefore the default SHM Key has changed from 0xA7000000 to 0xA8000000 If you were specifying your own key, it is critical that this be updated for the use of client 7.4.1 .

    • Removed the error constants ERR_BIN_EXISTS, ERR_BIN_NOT_FOUND .

    • Update to C client 4.5.0.

    • Add Configuration options for Rack Aware reads.

  • 7.3.0
    Release Date: November 14, 2018


    • Update to C client 4.3.20.

    • Lua system files are now loaded from internal strings. The LUA_SYSTEM_PATH configuration options have been removed.

    • Breaking Change Remove old use_batch_direct policy option.


    • Fix Syntax errors in Documentation file.

  • 7.2.0
    Release Date: August 15, 2018


    • Added support for TLS connections. See documentation for details. This is an enterprise only feature.

    • Added new format for specifying policies in client constructor. This format allows the specification of default policies for, read, write, apply, query, batch, scan, operate, and remove operations.

    • Exposed additional configuration options.

    • Added a new method errorInDoubt() to check whether it is possible that an operation which resulted in error may have succeeded.

    • Update to C client version 4.3.12

    • Add a file to the GitHub repository specifying information about all of the policies used with various methods.

    • Improve installation on Debian 9 and Ubuntu 18

    • queryApply may now return before the query has completed.

    • Breaking Change Shared memory layout has changed. The default SHM Key has changed from 0xA6000000 to 0xA7000000.

    • OPT_POLICY_RETRY has been replaced by OPT_MAX_RETRIES . Code using the former will not raise errors, but the option will be ignored.


    • Remove an unlisted/documented select method.

    • Creating a matching index on an already indexed bin, or creating an index with an already used name will now return an Error instead of silently failing.

    • Fix installation error on Debian 9.

  • 7.1.2
    Release Date: April 5, 2018


    • Prevent null pointer dereference during destructor use on invalid objects.

  • 7.1.0
    Release Date: December 17, 2017


    • Added new map operations:


























    • Switched documentation from Markdown to PHPDoc

  • 7.0.4
    Release Date: November 28, 2017


    • Enable specifying a TTL value for operate, operateOrdered, append, prepend, increment, listInsert, listInsertItems, listAppend, listMerge, listPop, listPopRange listRemove, listRemoveRange, listTrim, listClear, listSet methods via the AEROSPIKE::OPT_TTL field of the policy array.


    • Specifying an incorrectly formatted AEROSPIKE::OPT_POLICY_GEN in a policy now returns an error code rather than silently ignoring the value.

  • 7.0.3
    Release Date: November 9, 2017


    • Enable specifying interval for cluster tender in the constructor via the "tender_interval" config entry. See documentation for more details.

    • Enable specifying a cluster name in the constructor via the "cluster_name" config entry. See documentation for more details.


    • Documentation: Expose class constants in PHPDoc stubs.

    • Documentation: Correct the name of the read write security privilege in the PHPDoc stub.

  • 7.0.2
    Release Date: October 5, 2017


    • Enabled truncate functionality.

    • Improve installation experience for macOS

    • Allow setting of socket_timeout via Aerospike::OPT_SOCKET_TIMEOUT in scan policies

    • Improved setup script to allow installation on additional distros.


    • Fix setting of timeout in remove policies.

    • Prevent null dereference in ZTS environments when using user specified logging during a cluster disruption.

    • Properly mark user specified logging as unsupported in ZTS environments.

  • 7.0.1
    Release Date: September 14, 2017


    • Composer - Do not attempt to download PHPUnit.

    • Composer - Rename os_version script so permissions are set correctly.

  • 7.0.0
    Release Date: September 12, 2017


    • Welcome to the new PHP7 Aerospike Client!

    • Incorporate PR 103 for session store. Thanks @aterrien!

    • LDT Support has been removed.

    • Type checking in general is stricter for method parameters. If you are not sure whether an argument to a function is an integer or a string, we recommend casting it to the type specified by the method. Running with strict_types enabled may help to catch some issues.

    • An exception will be raised if the constructor fails to connect to the cluster.

    • Aerospike\Bytes will be stored to the server as type AS_BYTES_BLOB instead of AS_BYTES_PHP. This change allows better compatability with other clients.

    • Correspondingly, data stored in the server as AS_BYTES_BLOB will be returned as Aerospike\Bytes, if no deserializer has been registered. The Previous version of the Aerospike PHP Client returned a string if AS_BYTES_BLOB was encountered with no registered deserializer. Note It is not recommended to combine the use of \Aerospike\Bytes and user specified deserializers, as this may cause errors.

    • Support for PHP versions < 7 has been removed.

    • The INI entry aerospike.serializer now takes an integer value. 0 for No Serializer, 1 for default PHP serialization, and 2 for user specified serializer. See Configuration for additional information on the code values.

    • The constructor will no longer attempt to create a unique SHM key for the user. If a key is not specified in the shm configuration array, the default value will be used. A key provided in the constructor takes precedence over a value specified by INI.

    • The layout of the shared memory used by the client when using an SHM key has changed. The default key has changed as well in order to prevent accidental sharing between new and old clients.

    • The formatting of the response from an info call may have changed. It now includes the request at the beginning of the response.

    • When using initKey with a digest, the digest must now be exactly 20 bytes.

    • The integer values of the Aerospike::LOGLEVEL* constants have changed. This should not effect the user unless they were providing log levels as integers rather than using the constants.

    • Aerospike::LOG_LEVEL_OFF has been removed. It no longer had any effect.

  • 3.4.14
    Release Date: January 4, 2017


    • Fix persistent connection issue under php-fpm which caused number of threads to increase

    • Fix shared memory persistence under php-fpm

    • Fix segfault in Aerospike constructor if cluster is NULL

    • Roll in PRs #129, #133 & #134 from the community. Thanks @koleo & @sergeyklay!

  • 3.4.13
    Release Date: November 17, 2016


    • Fix segfault in PHP7 when using php-fpm

  • 3.4.11
    Release Date: September 29, 2016


    • Added support for durable delete (requires EE server version v3.10+)


    • Fix seg fault in PHP7 when using persistent connections and/or multiple hosts in configuration. CLIENT-789

    • Use correct C client bits for various Ubuntu builds. CLIENT-737

    • Fix aggregate for PHP7

    • Roll in several PR's from the community. Thanks @sergeyklay, @devckonem & @dink10!

  • 3.4.10
    Release Date: September 8, 2016


    • Restore backward compatibility to session handler. Thanks @koleo!

    • Fix increment using floating point values.

    • Use correct C client bits for various Ubuntu builds.

    • Update to 4.0.7 version of C client.

    • Fix seg fault when configuration has "shm" option.

    • Update composer.json to reflect PHP7 support.

  • 3.4.9
    Release Date: July 28, 2016


    • Initial support for PHP 7


  • 3.4.8
    Release Date: April 8, 2016


    • Added Aerospike::operateOrdered API which takes the same parameters as Aerospike::operate but returns an indexed array of results, rather than a key-value associative array. CLIENT-652

    • Added support for Geospatial index using GeoJSON. CLIENT-542 Requires server >= 3.7.0.


    • Use session.gc_maxlifetime for the session timeout (was session.cache_expire). CLIENT-705

  • 3.4.7
    Release Date: March 5, 2016


    • Upgraded to C Client 4.0.2.

    • Added list operations. CLIENT-561 Requires server >= 3.7.0.

    • Added list operators for operate(). CLIENT-646 Requires server >= 3.7.0.

    • isConnected() now testing the client's connections to the nodes. CLIENT-624.

    • Allow the Aerospike class to be extendable. CLIENT-648.

    • Added a compression_threshold client config parameter. CLIENT-627.

    • Added OPT_SCAN_INCLUDELDT option for scan(). CLIENT-610.

  • 3.4.6
    Release Date: December 25, 2015


    • Secondary-index record UDFs using queryApply(). CLIENT-299

    • Enable shared-memory cluster tending through the constructor config. CLIENT-595

    • Added the config params max_threads, thread_pool_size. CLIENT-296

    • Removed the deprecated method createIndex(). Use addIndex(). CLIENT-585

    • Cleaned up the client documentation. Thanks @sergeyklay for your help.


    • Fixed shared-memory cluster tending by generating a unique shm key per-hostname. CLIENT-9

    • Fixed issue 62. CLIENT-596

  • 3.4.5
    Release Date: November 3, 2015


    • Fixed a memory leak in batch read operations. CLIENT-568

  • 3.4.4
    Release Date: October 30, 2015


    • Added explicit control over the batch protocol through a php.ini config variable aerospike.use_batch_direct, or constructor config parameter Aerospike::USE_BATCH_DIRECT. The default value is 0 (i.e. batch-index) for servers with version >= 3.6.0. CLIENT-567

    • Added support for Ubuntu 15. Thanks @lwille.

  • 3.4.3
    Release Date: October 22, 2015


    • Upgraded to C client 3.1.24.

    • A new backward incompatible format for the data returned by existsMany(). The underlying C client interfaces with a new API for batch reads called batch index, which is implemented in server versions >= 3.6.0. Since batch reads can now target multiple namespaces, the old format is no longer appropriate. Instead, an indexed array is returned in an order corresponding to the array of keys passed as the argument to existsMany(). CLIENT-28

    • Allow TTL to be set with the write methods increment(), append(), prepend(), operate(), removeBin() using OPT_TTL. CLIENT-510

    • Updated the methods of class LList. Added filters to find, findFirst, findLast, findRange.

    • Expanded the examples for LList with integer, string, and map elements.

    • Removed deprecated LDT classes (LMap, LSet, LStack) and methods.

    • Fixed the documentation for the Enterprise Edition security methods.

    • Fixed the installer to place the Lua system files in /usr/local/aerospike/lua by default. Path override can be done by setting the environment variables LUA_SYSPATH, LUA_USRPATH before invoking

    • Travis-CI cleanup.


    • Fixed bug where malformed keys triggered a segfault in getMany(). CLIENT-140 / AER-4342

    • Fixed the client to cast PHP floats to and from as_double. CLIENT-225

    • Fixed issue 53 - correct configuration inheritance. CLIENT-88

    • Fixed issue 54 - return the correct error status for empty put(). CLIENT-69

    • Fixed issue 57 - incorrectly identifying RHEL. Thanks, @npenteado.

  • 3.4.2
    Release Date: September 3, 2015


    • Upgraded to C client 3.1.22. AER-3909

    • A new backward incompatible format for the data returned by getMany(). The underlying C client interfaces with a new API for batch reads called batch index, which is implemented in server versions >= 3.6.0. Since batch reads can now target multiple namespaces, the old format is no longer appropriate. Instead, an indexed array is returned in an order corresponding to the array of keys passed as the argument to getMany(). AER-4064

    • Tests and API documentation updated. Thanks to @rmondragon for his help.

  • 3.4.1
    Release Date: August 10, 2015


    • Added Security Methods for Aerospike Monitoring Console. AER-3475

    • Added support for Debian 8.

    • Clarified configuration steps for the activating the extension with web servers, such as Nginx and Apache. Thanks Mickael Hassine.


  • 3.4.0
    Release Date: July 20, 2015


    • Support for null as valid argument to a UDF. AER-4003

    • Prefer to always download the appropriate C client ahead of building the extension. AER-4001


  • 3.3.16
    Release Date: June 19, 2015


    • Added an optional ttl argument to Aerospike::OPERATORTOUCH in operate(). _AER-3566

    • Copy registered modules to user path in register(). AER-3627

    • Changes to LList, added isValid(), findRange(), setPageSize(). Modified scan() in a compatibility breaking way.


    • Fixed Issue 46 - reusing keys from scan/query. AER-3748

    • Fixed Issue 44 - accept numeric strings for increment(). AER-3812

    • Fixed bug preventing a default value of 'user' for serializer. AER-3527

    • Partially fixed Issue 43 - bigger static allocation for as_val. AER-3708

    • Expanded checks for libcrypto. Thanks @jumping

  • 3.3.15
    Release Date: May 5, 2015


    • Upgraded to C client 3.1.16.

    • Added support for indexing complex types (lists, map) and for querying against those secondary indexes using the contains and range predicates. Those will become fully available with a near-future release of Aerospike server. AER-3425, AER-3434


    • Fixed to allow OPT_SERIALIZER to be set to SERIALIZER_USER in an apply() call. AER-3528

  • 3.3.14
    Release Date: April 25, 2015


    • Implemented authentication in support of the Enterprise edition of Aerospike Issue 41. AER-3551

    • Slight clean-up of the doc and examples.


    • Making sure the bin-name length limit is 14, not 13. AER-3571

  • 3.3.13
    Release Date: April 19, 2015


    • Implemented configuration globals through the constructor.

    • Added support for namespaces with a null set in index creation, scan() and query().

    • A Aerospike\Bytes wrapper added, and doc updated regarding the handling of binary-strings that may contain the null-byte (\0).

    • LList Deprecated get_capacity(),set_capacity() methods of the LDT parent class.

    • LList added methods find_first, find_last, find_range, exists, config, setPageSize. Require server >= 3.5.8


    • Fixed Issue 33 for non-ZTS PHP, still in progress for the other case.

  • 3.3.11
    Release Date: March 6, 2015


    • Upgraded to C client 3.1.8

    • Support for generation policies in remove(). Requires server version >= 3.5.3


    • Fixed Issue 30. The increment() method is modified to reflect the behavior of the C client (aka upsert)

  • 3.3.10
    Release Date: February 26, 2015


    • Upgraded to C client 3.1.2

    • Removed dependency on Lua as a prerequisite

    • Added Aerospike::getKeyDigest()

    • Upgrades to LList update(), update_all(), UDF filter arguments for scan(), llist.filter wrapped into scan(), removeRange() implements llist.remove_range, llist.remove_all implemented as removeMany()

    • LDT Deprecation notice for LMap, LSet, LStack

    • Enhanced the docs and examples


  • 3.3.9
    Release Date: February 4, 2015


    • Fixed a memory leak in the increment() method

  • 3.3.5
    Release Date: January 9, 2015


    • Upgraded to C client 3.0.94

    • Faster close() resulting in faster tests and session handling

    • Fixed script that fetches the C client to work with minimal CentOS 7

    • Added support for queries without a predicate

  • 3.3.4
    Release Date: December 30, 2014


    • Fixed a bug with default serialization of unsupported types (boolean, float, etc)

    • Added support for Linux Mint

  • 3.3.2
    Release Date: December 5, 2014


    • Aerospike session handler for PHP sessions.

    • Issue 7 fixed

  • 3.3.1
    Release Date: November 27, 2014


    • Shared-memory cluster tending. Load is reduced when multiple PHP processes can share the data from a single tending thread.

    • Upgraded to release 3.0.90 of the C client

    • Reorganized the unit tests to run faster.

    • Removed deprecated status codes ERR (now it’s just ERR_CLIENT), ERR_RECORD, ERR_THROTTLED, ERR_SCAN, ERR_UDF_FILE_NOT_FOUND

  • 3.3.0
    Release Date: October 31, 2014


    • Batch operations - getMany() and existsMany()

    • Multi-op record operations - operate()

    • Compilation error fixed for OS X >= 10.9 (also tested on 10.10 "Yosemite"))

    • Upgraded to release 3.0.86 of the C client

  • 3.2.1
    Release Date: October 24, 2014


    • Examples cleaned up

    • Fixed digest key bug

  • 3.2.0
    Release Date: October 22, 2014


    • Admin methods createIndex() and dropIndex()

    • Info methods info(), infoMany(), getNodes()

    • Write methods support OPT_POLICY_GEN.

  • 3.1.1
    Release Date: October 8, 2014


    • Starting version >= 3.1.0 - format change for returned records - now all records come back as an array with keys ('key','meta','bins').

    • Set the C Client version to 3.0.84 (latest stable).

    • Methods get(), put() fixed to support OPT_POLICY_KEY.

    • Fixed apply() for case when the $returned parameter is not set.

    • Fixes to the .phpt tests.

  • 3.1.0
    Release Date: October 7, 2014


    • A format change for returned records - now all records come back as an array with keys ('key','meta','bins'). Your applicaiton will need to be recoded to account for this change, as it is not backward compatible.

    • OPT_POLICY_KEY added for read and write methods.

    • Support for Large Data Types with a PHP class library \Aerospike\LDT

    • Added stream UDF methods scanApply() and aggregate()

    • UDF module admin methods register(), deregister(), listRegistered(), getRegistered()

    • Background scan method scanApply() with OPT_SCAN_* policies to control its behavior and scanInfo() helper.

    • Standardized (and therefore modified) parameter lists for stream methods - query(), scan(), aggregate(), scanApply()

    • Fixes for FPM and APXS SAPIs

    • Extension is now built with src/aerospike/

    • Composer support

    • Integration with Travis CI

  • 3.0.3
    Release Date: September 12, 2014


    • Fixed apply() argument list

    • Enhanced build script with install & config instructions

  • 3.0.2
    Release Date: September 6, 2014


    • Works with PHP versions 5.3 - 5.6

    • Record UDF & UDF management methods

    • Example scripts

  • 3.0.1
    Release Date: August 28, 2014


    • Initial 3.0 client release

    • Lifecycle and connection methods

    • Key-Value methods

    • Query and Scan methods