【问题标题】:AWS SDK with Lumen带有 Lumen 的 AWS 开发工具包
【发布时间】:2016-03-24 13:51:59
【问题描述】:

我正在尝试使用 lumen 安装 AWS Laravel SDK。 我可以安装它:

{
"require": {
    "aws/aws-sdk-php-laravel": "~3.0"
    }
}

但是,文档说:

在您的 config/app.php 中找到 providers 键并注册 AWS 服务提供商。

'providers' => array(
    // ...
    Aws\Laravel\AwsServiceProvider::class,
)

在您的 config/app.php 中找到 aliases 键并添加 AWS 外观别名。

'aliases' => array(
    // ...
    'AWS' => Aws\Laravel\AwsFacade::class,
)

东西在Lumen,没有config/app.php

我该怎么做???

【问题讨论】:

  • 我认为你应该从头开始创建它 (config/app.php)

标签: laravel amazon-web-services aws-sdk lumen


【解决方案1】:

在 bootstrap/app.php 中,添加以下内容:

提供者:

$app->register(Aws\Laravel\AwsServiceProvider::class);

立面

class_alias('Aws\Laravel\AwsFacade','AWS');

  • 请注意,您必须取消注释 $app->withFacades();为了工作的门面。

【讨论】:

  • 在那之后,文档说要运行:php artisan vendor:publish,但是这个命令不起作用,还说要配置 Lumen 上不存在的 app/config/aws.php...有什么提示吗?跨度>
【解决方案2】:

一开始我也有点困惑,所以我最终做了什么。

  1. 使用 Composer 安装 AWS Laravel SDK (https://github.com/aws/aws-sdk-php-laravel)。
  2. 更新 app.php 以包含 $app->register(Aws\Laravel\AwsServiceProvider::class);
  3. 将我的 AWS 凭证/区域值添加到我的 .env 文件中
  4. 在我的一个辅助类中创建一个方法,定义如下:

    public static function getS3Instance() { return new \Aws\S3\S3Client([ 'version' => 'latest', 'region' => env('AWS_REGION'), 'credentials' => [ 'key' => env('AWS_KEY'), 'secret' => env('AWS_SECRET') ] ]); }

在一个模型中,我只需调用 Util::getS3Instance(),然后我就拥有了开始使用 S3 所需的一切。这个函数可以很容易地适应返回库中包含的任何 AWS 客户端的实例。

这一切都发生在 Lumen 5.6 项目中,但我认为同样的方法也适用于旧版本的 Lumen。我希望这会有所帮助!

【讨论】:

  • 您应该向服务容器添加绑定,而不是使用帮助文件来访问 S3Client。
【解决方案3】:

您可以复制默认 Lumen 配置文件以覆盖它们。

配置文件

如果您愿意,您可以使用完整的“Laravel 风格”配置文件。这 默认文件存储在 vendor/laravel/lumen-framework/config 目录。 Lumen 将使用您的配置文件副本,如果您 将其中一个文件复制并粘贴到您的配置目录中 项目根目录。

使用完整的配置文件可以让您更好地控制一些 Lumen的配置方面,比如配置多个存储 “磁盘”或读/写数据库连接。

参考:http://lumen.laravel.com/docs/installation#configuration-files

【讨论】:

    猜你喜欢
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    • 2020-01-26
    • 2023-03-15
    • 1970-01-01
    • 2011-11-10
    • 2012-05-24
    相关资源
    最近更新 更多