2017-11-29 12 views
0

aws/aws-sdk-php-zf2 1.2。*を使用していて、2.0。*にアップグレードしてAWS SDKをv3にしていました。aws-sfk-php-zf2でawsサービスを取得する方法v 2.0。*?

私は、コードを使用して、それを呼ばれる前に:

$this->s3 = $serviceLocator->get('aws')->get('s3'); 

しかし今、そのは、このエラーを返す:

Zend\ServiceManager\ServiceManager::get was unable to fetch or create an instance for aws

は、移行のドキュメントの違いを見つけることができませんでした。

ヒント?

答えて

0

私のために働く方法を見つけました。

それは今、そのようなものだ:私は$ aws-にしようとすると( 'S3)、それ文句を言わない仕事を得る>

use Aws\S3\S3Client; 

$this->s3 = S3Client::factory(array(
      'credentials' => array(
       'key' => $this->config['aws']['key'], 
       'secret' => $this->config['aws']['secret'], 
      ), 
      'region' => $this->config['aws']['region'], 
      'version' => '2006-03-01' 
     )); 
+0

この方法を使用する場合は、モジュールを無視しています、あなたは引き続きプロジェクトからモジュールを破棄/削除することができます。作者の要​​求に 'aws/aws-sdk-php'を直接追加するだけです。モジュールに付属のビューヘルパー/プラグインを実際に使用していない限り、 – Kwido

2

キーでサービスを取得する代わりに、AwsのSDKクラスのFQCNを使用するようにしてください。

use Aws\Sdk as Aws; 

$aws = $serviceLocator->get(Aws::class); 

aws/aws-sdk-php-zf2モジュールのmodule.config.phpを参照してください。

+0

。どちらも$ aws-> putObjectを試しても... –

+0

新しいバージョンのモジュールにアップグレードしたので、新しいバージョンのSDKも使用します。したがって、S3サービスを入手する方法については、SDKのドキュメントをお読みください。 [createS3](https://github.com/aws/aws-sdk-php/blob/3.44.0/src/Sdk.php#L213)をご覧ください – Kwido

関連する問題