Я пытаюсь читать сообщения из моего 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.
Все еще не уверен, почему вышеупомянутое не работало, но если кто-то пытается, это работает:
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);
Класс, который вы пытаетесь создать, является пространственным. Не забудьте включить use Aws\Sqs\SqsClient;
утверждение перед ссылкой на класс по его короткому имени.
Несколько связанный, но не совсем этот вопрос. У меня не найден класс для Aws \ Sns \ MessageValidator (& Сообщение) и после некоторой борьбы выяснили, что в последнем SDK v3.17.3 для PHP их не было в \ Sns — https://github.com/aws/aws-sdk-php/tree/3.17.3/src/Sns. Я просто откатился на более раннюю версию 3x и исправил путь импорта, чтобы получить нужный нам класс. Размещение здесь, думая, что это может помочь кому-то.