Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 实例化从AwsClient子类扩展的类时出错_Php_Amazon Web Services_Aws Php Sdk - Fatal编程技术网

Php 实例化从AwsClient子类扩展的类时出错

Php 实例化从AwsClient子类扩展的类时出错,php,amazon-web-services,aws-php-sdk,Php,Amazon Web Services,Aws Php Sdk,我正在扩展自定义Sqs类,如下所示: class Sqs extends SqsClient { public function __construct() { parent::__construct(array( 'credentials' => array( 'key' => $_ENV['AWS_ACCESS_KEY_ID'], 'secret' =>

我正在扩展自定义Sqs类,如下所示:

class Sqs extends SqsClient
{
    public function __construct()
    {
        parent::__construct(array(
            'credentials' => array(
                'key' => $_ENV['AWS_ACCESS_KEY_ID'],
                'secret' => $_ENV['AWS_SECRET_ACCESS_KEY'],
            ),
            'region' => 'us-west-1',
            'version' => 'latest'
        ));
    }
}
$sqs = new Sqs();
$sqs->sendMessage([
    'QueueUrl' => $_ENV['AWS_SQS_URL_PREFIX'] . '/' . $_ENV['AWS_SQS_READER_USER_CREATE'],
    'MessageBody' => $user_json,
    'MessageGroupId' => 1,
    'MessageDeduplicationId' => uniqid(),
]);
然后我实例化并使用它,如下所示:

class Sqs extends SqsClient
{
    public function __construct()
    {
        parent::__construct(array(
            'credentials' => array(
                'key' => $_ENV['AWS_ACCESS_KEY_ID'],
                'secret' => $_ENV['AWS_SECRET_ACCESS_KEY'],
            ),
            'region' => 'us-west-1',
            'version' => 'latest'
        ));
    }
}
$sqs = new Sqs();
$sqs->sendMessage([
    'QueueUrl' => $_ENV['AWS_SQS_URL_PREFIX'] . '/' . $_ENV['AWS_SQS_READER_USER_CREATE'],
    'MessageBody' => $user_json,
    'MessageGroupId' => 1,
    'MessageDeduplicationId' => uniqid(),
]);
但我有一个奇怪的错误:

The service \"\" is not provided by the AWS SDK for PHP.

AWSAPI使用反射来根据类名确定它们连接到的AWS服务。如果是这样的话,你可以试着调用你的类SqsClient,例如

use Aws\Sqs\SqsClient as BaseSqsClient;

class SqsClient extends BaseSqsClient 
{
     //...
}

对于将来遇到此问题的任何其他人来说,另一种选择是将
服务作为配置数组中的元素传递也可以:

class MyWafClient extends WafClient
{
    public function __construct(array $args = [])
    {
        $args['service'] = 'waf';
        parent::__construct($args);
    }

    ...
}