适用于 Laravel 的 AWS 开发工具包出现 PHP 致命错误

Chr*_*gia 2 php sdk amazon-s3 amazon-web-services laravel

我安装了https://github.com/aws/aws-sdk-php-laravel?SDK 并按照 readme.md 中的说明进行操作。一切都安装好了,我把我的密钥、秘密、地区等放在/app/config/packages/aws/aws-sdk-php-laravel.

我得到的错误

PHP Fatal error:  Class 'Aws\Common\Aws' not found in /Volumes/Data/Users/chris/Sites/ln.com/vendor/aws/aws-sdk-php-laravel/src/Aws/Laravel/AwsServiceProvider.php on line 48
{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"Class 'Aws\\Common\\Aws' not found","file":"\/Volumes\/Data\/Users\/chris\/Sites\/ln.com\/vendor\/aws\/aws-sdk-php-laravel\/src\/Aws\/Laravel\/AwsServiceProvider.php","line":48}}
Run Code Online (Sandbox Code Playgroud)

上面引用的那个文件的第 48 行简单地说:

$aws = Aws::factory($config);
Run Code Online (Sandbox Code Playgroud)

我按照说明安装

我把我的提供者和别名放在 /app/config/app.php 中:

'Aws\Laravel\AwsServiceProvider'
Run Code Online (Sandbox Code Playgroud)

在提供者数组中。

我输入:

'AWS' => 'Aws\Laravel\AwsFacade'
Run Code Online (Sandbox Code Playgroud)

在别名部分。

然后,我尝试使用他们相同的用法示例:

    $s3 = AWS::get('s3');
$s3->putObject(array(
    'Bucket'    => 'My Bucket',
    'Key'       => 'My Key',
    'SourceFile'=> Config::get('settings.ProcessListings.image_dir') . $listing->mls_listing_id . "/test.txt"
                ));
Run Code Online (Sandbox Code Playgroud)

我试过的

我唯一的想法是在我试图在其中使用 SDK 的文件中,在顶部我有:

    use Illuminate\Console\Command;
    use Symfony\Component\Console\Input\InputOption;
    use Symfony\Component\Console\Input\InputArgument;
Run Code Online (Sandbox Code Playgroud)

我补充说:

use Aws\Laravel\AwsFacade;
use Aws\Laravel\AwsServiceProvider;
Run Code Online (Sandbox Code Playgroud)

和两者的组合,但都不起作用。有任何想法吗?

Ant*_*iro 6

你的问题是一类Aws\Common\Awsaws/aws-sdk-php这是不提供给作曲家(磁带自动加载机)。这些是通常修复 Laravel 的步骤,当发生这样的事情并且问题不在你的源代码上时,当然:

cd /your/application/dir

rm bootstrap/compiled.php

rm -rf vendor (or just rename your vendor folder to test)

composer update --no-dev
Run Code Online (Sandbox Code Playgroud)