我试图从我的SQS中读取消息,但由于我在安装PHP SDK时遇到问题,我无法做到这一点。
我按照说明操作并通过作曲家安装。
我的测试代码是:
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上输出文本。
答案 0 :(得分:1)
仍然不确定上述原因为什么不起作用,但如果有人在尝试,这确实有效:
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);
答案 1 :(得分:1)
您尝试实例化的类是namspaced。在通过短名称引用类之前,请记住包含use Aws\Sqs\SqsClient;
语句。
答案 2 :(得分:0)
有些相关但不完全是这个问题。我有一个没有找到Aws \ Sns \ MessageValidator(& Message)的课程,经过一番挣扎后发现PHP的最新SDK v3.17.3没有在\ Sns - https://github.com/aws/aws-sdk-php/tree/3.17.3/src/Sns下面。我简单地回滚到早期版本3x并更正了导入路径以获得我们需要的类。在这里发帖认为它可能对某人有帮助。