neo-rainboy/aerospike-client-php

Aerospike PHP客户端,作为PHP8的C扩展

v6.4.4 2024-02-27 06:47 UTC

This package is auto-updated.

Last update: 2024-09-27 08:16:12 UTC


README

Build Status License

注意:此客户端支持PHP版本 >= 8。如果您正在寻找支持PHP版本至5的旧客户端,可以在aerospike-client-php5存储库中找到。

与先前Aerospike PHP客户端的差异

  • LDT支持已移除。
  • 方法参数的类型检查更严格。如果您不确定函数的参数是整数还是字符串,我们建议将其转换为方法指定的类型。开启strict_types模式可能有助于捕捉一些问题。
  • 如果构造函数无法连接到集群,将引发异常。
  • \Aerospike\Bytes将被存储为AS_BYTES_BLOB类型,而不是AS_BYTES_PHP。此更改允许与其他客户端有更好的兼容性。
  • 相应地,如果服务器上存储的数据为AS_BYTES_BLOB且未注册反序列化器,则将返回Aerospike\Bytes。先前版本的Aerospike PHP客户端在未注册反序列化器的情况下遇到AS_BYTES_BLOB将返回字符串。注意不推荐同时使用\Aerospike\Bytes和用户指定的反序列化器,因为这可能导致错误。
  • 已移除对PHP版本 < 8 的支持。
  • INI条目aerospike.serializer现在接受整数值。0表示无序列化器,1表示默认PHP序列化,2表示用户指定序列化器。有关代码值的更多信息,请参阅配置
  • 构造函数将不再尝试为用户创建唯一的SHM密钥。如果shm配置数组中未指定密钥,则使用默认值。在构造函数中提供的密钥将优先于INI中指定的值。
  • 客户端使用SHM密钥时使用的共享内存布局已更改。默认密钥也已更改,以防止新旧客户端之间意外共享。
  • info调用的响应格式可能已更改。现在,响应的开头包括请求。
  • 使用initKey与摘要时,摘要现在必须是恰好20字节。
  • Aerospike::LOG_LEVEL_*常量的整数值已更改。除非用户将日志级别作为整数提供而不是使用常量,否则这不会影响用户。
  • Aerospike::LOG_LEVEL_OFF已被移除。它不再有任何影响。

文档

Aerospike PHP客户端的文档可以在doc目录中找到。关于实现内部结构的说明在doc/internals.md

可以在examples/目录中找到示例PHP代码

Aerospike数据库的完整文档可在http://www.aerospike.com/docs/找到。

依赖项

CentOS和RedHat (yum)

sudo yum groupinstall "Development Tools"
sudo yum install openssl-devel
# You will need PHP8 development headers. If PHP8 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

Ubuntu和Debian (apt)

sudo apt-get install build-essential autoconf libssl-dev
sudo apt-get install php8.0-dev php-pear # unless PHP was manually installed

OS X

默认情况下,OS X 将缺少命令行工具。在 Mavericks(OS X 10.9)及更高版本中,这些工具可以在不安装 Xcode 的情况下安装

xcode-select --install # install the command line tools, if missing

依赖项可以通过 OS X 的包管理器 Homebrew 安装。

brew update && brew doctor
brew install automake
brew install openssl

要切换 PHP 版本,请查看这个片段

由于此库依赖于 OpenSSL,因此在安装过程中可能会偶尔出现链接问题。为了解决这些问题,我们建议运行 brew info openssl

此命令将显示有关 openssl 头文件和库位置的一些信息。特别是应该有一个类似于以下内容的段落:为了编译器找到此软件,您可能需要设置:LDFLAGS: -L/usr/local/opt/openssl/lib CPPFLAGS: -I/usr/local/opt/openssl/include

为了正确链接和编译库,您可以设置两个环境变量 AS_OSX_OPENSSL_INCAS_OSX_OPENSSL_LINK 为相应的值(如果路径如上所述):export AS_OSX_OPENSSL_INC="-I/usr/local/opt/openssl/include" export AS_OSX_OPENSSL_LINK="-L/usr/local/opt/openssl/lib"

目前不支持 Windows。

安装

使用 Composer 构建

使用 Composer,您可以下载并构建 PHP 扩展

composer require neo-rainboy/aerospike-client-php v6.4.4
find vendor/neo-rainboy/aerospike-client-php/ -name "*.sh" -exec chmod +x {} \;
cd vendor/neo-rainboy/aerospike-client-php/ && sudo composer run-script post-install-cmd

手动构建

要手动构建 PHP 扩展,您需要从 Github 下载最新版本,然后在 src/ 目录中运行 build.sh 脚本。

cd src
./build.sh

这将根据需要将 Aerospike C 客户端 SDK 下载到 src/../aerospike-client-c/,并启动 make

安装 PHP 扩展

要安装 PHP 扩展,请

make install
php -i | grep ".ini "

现在编辑 php.ini 文件。如果 PHP 配置了 --with-config-file-scan-dir(通常设置为 /etc/php.d/),您可以在该目录中创建一个 aerospike.ini 文件,否则直接编辑 php.ini。添加以下指令

extension=aerospike.so
aerospike.udf.lua_user_path=/path/to/aerospike/usr-lua

现在 aerospike 模块应该对 PHP CLI 可用

php -m | grep aerospike
aerospike

请记住,如果您使用 PHP 与 Nginx 或 Apache 一起,则可能存在针对 web 服务器的单独 php.ini 配置文件。将您刚刚创建的 aerospike.ini 复制到 /etc/8/apache2/conf.d//etc/php8/fpm/conf.d/ 或 web 服务器的配置包含目录所在的任何位置,然后执行优雅的重启。

许可证

Aerospike PHP 客户端根据 Apache License,Version 2 的条款提供,如文件 LICENSE 中所述。

个别文件可能根据其自己的特定许可证提供,所有许可证都与 Apache License,Version 2 兼容。请查看个别文件以获取详细信息。