PHP连接ArangoDB报错:未找到ArangoDB\Connection类求排查方案
PHP连接ArangoDB报错:Class "ArangoDB\Connection" not found 解决方法
问题背景
已通过Composer安装ArangoDB的PHP依赖,编写测试脚本时始终触发错误:Uncaught Error: Class "ArangoDB\Connection" not found,测试脚本如下:
<?php require 'vendor/autoload.php'; use ArangoDB\Connection; use ArangoDB\Statement; use ArangoDB\Cursor; // 连接到其他服务器上的数据库 $adb = new Connection([ 'name' => 'arangodb', 'driver' => 'arangodb', 'endpoint' => 'localhost', 'database' => 'database', 'username' => 'root', 'password' => 'passwort', ]); $query = new Statement($adb, [ 'query' => 'FOR doc IN your_collection RETURN doc', ]); $cursor = new Cursor($query->execute()); foreach ($cursor as $document) { // 在此处理文档 } ?>
尝试修改数据库HTTPS路径、调整name和driver参数均无效,核心问题为指定的连接类无法被找到。
错误原因
你使用的ArangoDB\Connection命名空间与实际安装的官方ArangoDB PHP客户端库不匹配。官方维护的PHP客户端采用ArangoDBClient作为根命名空间,而非ArangoDB,这是导致类加载失败的根本原因。
正确实现代码
使用官方客户端库的正确命名空间与配置方式,示例脚本如下:
<?php require 'vendor/autoload.php'; // Composer自动加载文件路径设置 use ArangoDBClient\ConnectionOptions; use ArangoDBClient\Connection as ArangoConnection; // 设置连接选项 $connectionOptions = [ // 指定数据库URL ConnectionOptions::OPTION_ENDPOINT => 'tcp://localhost:8529', // 指定用户名和密码 ConnectionOptions::OPTION_AUTH_USER => 'username', ConnectionOptions::OPTION_AUTH_PASSWD => 'password', // 指定数据库名称 ConnectionOptions::OPTION_DATABASE => 'mydatabase', // 可选设置 ConnectionOptions::OPTION_TIMEOUT => 30, ConnectionOptions::OPTION_CONNECTION => 'Keep-Alive', ConnectionOptions::OPTION_RECONNECT => true, ]; // 建立与ArangoDB数据库的连接 $connection = new ArangoConnection($connectionOptions); ?>
额外验证步骤
- 确认Composer安装的是官方客户端:执行
composer show,检查列表中是否存在arangodb/arangodb-php包 - 验证
vendor/autoload.php的路径正确性,确保脚本所在目录与vendor目录的相对路径无误 - 确认ArangoDB服务正常运行,默认端口8529可正常访问
内容的提问来源于stack exchange,提问作者Tom Friedrichs
相关产品推荐
相关产品推荐

