AWS PHP SDK 获取 class 未找到致命错误

AWS PHP SDK getting class not found fatal error

我正在尝试从我的 SQS 读取消息,但我无法做到这一点,因为我在安装 PHP SDK 时遇到问题。

我按照说明操作并通过 composer 安装。

我的测试代码是:

require 'vendor/autoload.php';
$sqs_credentials = array(
        'region' => 'us-west-2',
        'version' => 'latest',
        'credentials' => array(
            'key'    => '*****',
            'secret' => '**********',
        )
    );

    $sqs_client = new SqsClient($sqs_credentials);

这只会导致

Class 'SqsClient' not found in /var/www/html/sqs_test.php on line 10

然后我尝试直接下载 zip 文件并使用

require 'aws/aws-autoloader.php';

这导致了完全相同的错误。我究竟做错了什么?我很确定路径是准确的,因为我可以直接在 Sqs/SqsClient.php.

上输出文本

仍然不确定为什么上面的方法不起作用,但如果有人在尝试,这确实有效:

require 'vendor/autoload.php';
use Aws\Sqs\SqsClient;

$client = SqsClient::factory(array(
        'region' => 'us-west-2',
        'version' => 'latest',
        'credentials' => array(
            'key'    => '********',
            'secret' => '********',
        )
    )
);

$result = $client->receiveMessage(array(
    'QueueUrl' => $sqs_url
));
print_r($result);

您尝试实例化的 class 是命名空间的。请记住在通过其简称引用 class 之前包含 use Aws\Sqs\SqsClient; 语句。

有点相关但不完全是这个问题。我有一个 class not found for Aws\Sns\MessageValidator (& Message),经过一番努力发现 PHP 的最新 SDK v3.17.3 没有在 \Sns - https://github.com/aws/aws-sdk-php/tree/3.17.3/src/Sns.我简单地回滚到早期版本 3x 并更正了导入路径以获得我们需要的 class。在这里发帖认为它可能对某人有帮助。