2016-03-15 3 views
0

Я пытаюсь читать сообщения из моего SQS, но я не могу дойти до того, что у меня возникли проблемы с установкой PHP SDK.AWS 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 

Затем я попытался загрузив файл почтового индекса непосредственно и использовали

require 'aws/aws-autoloader.php'; 

Это привело к точно такая же ошибка. Что я делаю не так? Я совершенно уверен, что путь верен, так как я могу выводить текст непосредственно на Sqs/SqsClient.php.

ответ

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

Метод 'factory' просто вызывает конструктор класса с предоставленным массивом. Разница между кодом в вашем вопросе и кодом в этом ответе - наличие оператора импорта: 'use Aws \ Sqs \ SqsClient;' – giaour

1

класс вы пытаетесь создать экземпляр является namspaced. Не забудьте включить оператор use Aws\Sqs\SqsClient;, прежде чем обращаться к классу по его короткому имени.

0

Немного связанный, но не совсем этот вопрос. У меня был класс, не найденный для Aws \ Sns \ MessageValidator (& Message), и после некоторой борьбы выяснилось, что последний SDK v3.17.3 для PHP не имел их в \ Sns - https://github.com/aws/aws-sdk-php/tree/3.17.3/src/Sns. Я просто вернулся к более ранней версии 3x и исправил путь импорта, чтобы получить класс, который нам нужен. Проводятся здесь, думая, что это может помочь кому-то.

Смежные вопросы