首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UserFrosting & AWS

UserFrosting & AWS
EN

Stack Overflow用户
提问于 2016-11-14 18:13:01
回答 1查看 180关注 0票数 2

在UserFrosting之外,我有以下代码按预期工作:

代码语言:javascript
复制
<?php
echo "Hello World.<br>";

require_once '../vendor/autoload.php';

use Aws\Common\Aws;

$aws = Aws::factory('../aws/aws-config.json');
$client = $aws->get('S3');

$bucket = 'my-public-public';

$iterator = $client->getIterator('ListObjects', array(
    'Bucket' => $bucket
));

foreach ($iterator as $object) {
    echo $object['Key'] . "<br>";
}

在我的UserFrosting实例中,我成功地用Composer加载了aws

代码语言:javascript
复制
  - Installing aws/aws-sdk-php (3.19.24)
    Downloading: 100%

使用Aws\ placed \Aws;放在Slim下面的initialize.php,中:

代码语言:javascript
复制
use \Slim\Extras\Middleware\CsrfGuard;
use Aws\Common\Aws;

其余代码在控制器中:

代码语言:javascript
复制
    public function readS3(){
        $aws = Aws::factory('../aws/aws-config.json');
        $client = $aws->get('S3');
        ...
    }

我仍然收到以下错误:

未找到类“UserFrosting\Aws”。

我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-14 20:52:43

正如您所看到的,它正在查找UserFrosting\名称空间中的Aws类,但它显然不存在于其中!

您需要use Aws\Common\Aws;位于的顶部,每个文件都要引用类Aws。或者,您可以简单地使用类的完全限定名引用该类:

$aws = \Aws\Common\Aws::factory('../aws/aws-config.json');

我建议花一个小时左右来了解更多关于PHP命名空间的知识。它们是现代PHP中一个非常重要的概念,与作曲家、自动加载和PSR-4标准密切相关。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40595182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档