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

未找到AWS PHP SDK获取类致命错误,php,amazon-web-services,aws-sdk,aws-php-sdk,Php,Amazon Web Services,Aws Sdk,Aws Php Sdk,我正在尝试从我的SQS中读取消息,但由于安装PHPSDK时遇到问题,我无法做到这一点 我按照说明通过composer安装 我的测试代码是: require 'vendor/autoload.php'; $sqs_credentials = array( 'region' => 'us-west-2', 'version' => 'latest', 'credentials' => array( 'key'

我正在尝试从我的SQS中读取消息,但由于安装PHPSDK时遇到问题,我无法做到这一点

我按照说明通过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);

仍然不确定上述方法为何无效,但如果有人尝试,这确实有效:

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);

您试图实例化的类是空的。请记住包含
使用Aws\Sqs\SqsClient语句,然后通过其短名称引用该类。

您尝试实例化的类是空的。请记住包含
使用Aws\Sqs\SqsClient语句,然后通过其短名称引用该类。

与此问题有些关联,但并不完全相同。我在Aws\Sns\MessageValidator(&Message)中找不到一个类,经过一番努力,我发现最新的SDK v3.17.3 for PHP在\Sns-下没有它们。我只是简单地回滚到早期版本3x,并更正了导入路径以获得我们需要的类。在这里发帖,认为这可能会对某人有所帮助。

有些相关,但不完全是这个问题。我在Aws\Sns\MessageValidator(&Message)中找不到一个类,经过一番努力,我发现最新的SDK v3.17.3 for PHP在\Sns-下没有它们。我只是简单地回滚到早期版本3x,并更正了导入路径以获得我们需要的类。在这里发布,认为它可能对某些人有所帮助。

工厂方法只使用提供的数组调用类的构造函数。您问题中的代码与此答案中的代码之间的区别在于存在导入语句:
use Aws\Sqs\SqsClient
factory
方法仅使用提供的数组调用类的构造函数。您问题中的代码与此答案中的代码之间的区别在于存在导入语句:
use Aws\Sqs\SqsClient