3
votes

I follow aws-sdk-php-laravel readme.md to setup aws-sdk-php-laravel in laravel 5.2

In composer.json

"require": {
    "php": ">=5.5.9",
    "laravel/framework": "5.2.*",
    "aws/aws-sdk-php-laravel": "3.1.0"
},

composer update

In config/app.php

providers add

Aws\Laravel\AwsServiceProvider::class,

aliases add

'Aws' => Aws\Laravel\AwsFacade::class,

php artisan vendor:publish

and one of controllers

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Aws;

$cloudSearchDomain = App::make('aws')->get('cloudsearchdomain', array('endpoint' => xxxxxxxxxxxxxxxxxxxxxxxxxxx));

always get

Fatal error: Class 'App\App' not found

If add

use App;

get

BadMethodCallException in Sdk.php line 178:
Unknown method: get.

but the same code work fine in laravel 4.2

How can I fix it?

1
Try replacing App::make('aws')->get with Aws::getntzm
BadMethodCallException in Sdk.php line 178:Unknown method: get.Steven
Ok, looking at the docs it looks like you have to do something like this before calling any methods such as get: $xxx = AWS::createClient('name-of-aws-service-here'); So for Cloud Search Domain: $csd = AWS::createClient('CloudSearchDomain') then $csd->get('blah');ntzm
Try \App::make....Thomas Van der Veen
Thanks @ntzm ,$cloudSearchDomain = Aws::createClient('cloudsearchdomain',array('endpoint' => xxxxxxxxxxx)); It's worked.Steven

1 Answers

0
votes
$cloudSearchDomain = App::make('aws')->createClient('cloudsearchdomain', [
    'endpoint' => xxxxxxxxxxxxxxxxxxxxxxxxxxx,
]);

or

$cloudSearchDomain = Aws::createClient('cloudsearchdomain', [
    'endpoint' => xxxxxxxxxxxxxxxxxxxxxxxxxxx,
]);