Note: This client supports PHP versions >= 7 . If you are looking for the Legacy client which supports PHP versions up through 5, it can be found at the aerospike-client-php5 repo
- 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::LOG_LEVEL_*
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.
Documentation of the Aerospike PHP Client may be found in the doc directory. Notes on the internals of the implementation are in doc/internals.md.
Example PHP code can be found in the examples/
directory.
Full documentation of the Aerospike database is available at http://www.aerospike.com/docs/
sudo yum groupinstall "Development Tools"
sudo yum install openssl-devel
# You will need PHP7 development headers. If PHP7 was manually installed, these should be available
# by default; Otherwise, you will need to fetch them from a repository, the package name may vary.
sudo yum install php-pear # unless PHP was manually installed
sudo apt-get install build-essential autoconf libssl-dev
sudo apt-get install php7.0-dev php-pear # unless PHP was manually installed
By default OS X will be missing command line tools. On Mavericks (OS X 10.9) and higher those can be installed without Xcode.
xcode-select --install # install the command line tools, if missing
The dependencies can be installed through the OS X package manager Homebrew.
brew update && brew doctor
brew install automake
brew install openssl
To switch PHP versions see this gist.
Do to the dependence of this Library upon OpenSSL, there will ocassionally be linking issues which will show up during installation. To Solve these we recommend running brew info openssl
This command will show some information about where the openssl headers and library are located. In particular there should a stanza which looks something like: For compilers to find this software you may need to set: LDFLAGS: -L/usr/local/opt/openssl/lib CPPFLAGS: -I/usr/local/opt/openssl/include
in order to properly link and compile against the library you can set the two environment variables AS_OSX_OPENSSL_INC
and AS_OSX_OPENSSL_LINK
to the respective values (if the paths were as specified above):
export AS_OSX_OPENSSL_INC="-I/usr/local/opt/openssl/include"
export AS_OSX_OPENSSL_LINK="-L/usr/local/opt/openssl/lib"
Windows is currently not supported.
Using Composer you can download and build the PHP extension:
composer require aerospike/aerospike-client-php ~7.0
find vendor/aerospike/aerospike-client-php/ -name "*.sh" -exec chmod +x {} \;
cd vendor/aerospike/aerospike-client-php/ && sudo composer run-script post-install-cmd
To build the PHP extension manually you will need to fetch the
latest release
from Github, then run the build.sh
script in the src/
directory.
cd src
./build.sh
This will download the Aerospike C client SDK if necessary into
src/../aerospike-client-c/
, and initiate make
.
To install the PHP extension do:
make install
php -i | grep ".ini "
Now edit the php.ini file. If PHP is configured --with-config-file-scan-dir
(usually set to /etc/php.d/
) you can create an aerospike.ini
file in the
directory, otherwise edit php.ini
directly. Add the following directive:
extension=aerospike.so
aerospike.udf.lua_user_path=/path/to/aerospike/usr-lua
The aerospike module should now be available to the PHP CLI:
php -m | grep aerospike
aerospike
Remember that if you are using PHP with Nginx or Apache there is likely a
separate php.ini
config file for the web server Copy the aerospike.ini
you have just created into /etc/php7/apache2/conf.d/
, /etc/php7/fpm/conf.d/
or wherever the configuration include directory of the web server is, then issue
a graceful restart.
The Aerospike PHP Client is made availabled under the terms of the Apache License, Version 2, as stated in the file LICENSE.
Individual files may be made available under their own specific license, all compatible with Apache License, Version 2. Please see individual files for details.