Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用户霜&;AWS SDK_Php_Amazon Web Services_Amazon S3_Aws Sdk_Userfrosting - Fatal编程技术网

Php 用户霜&;AWS SDK

Php 用户霜&;AWS SDK,php,amazon-web-services,amazon-s3,aws-sdk,userfrosting,Php,Amazon Web Services,Amazon S3,Aws Sdk,Userfrosting,在UserFrosting之外,我有以下代码按预期工作: <?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

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

<?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>";
}
使用Aws\Common\Aws;放置在initialize.php中,位于对Slim的引用下面:

use \Slim\Extras\Middleware\CsrfGuard;
use Aws\Common\Aws;
其余代码在控制器中:

    public function readS3(){
        $aws = Aws::factory('../aws/aws-config.json');
        $client = $aws->get('S3');
        ...
    }
我仍然收到以下错误:

找不到类“UserFrosting\Aws”


我遗漏了什么?

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

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

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


我建议花一个小时左右的时间来了解更多。它们在现代PHP中是一个极其重要的概念,与Composer、autoloading和the密切相关。

除此之外,如果不查看更多代码上下文以了解调用
UserFrosting
命名空间的位置/方式,就无法解决OP的特定错误,但是这个答案应该让OP指向正确的方向。@MikeBrant在这个版本的UserFrosting中,大多数都是从
名称空间UserFrosting开始的在顶部。因此,如果OP对命名空间不熟悉,他们可能没有意识到PHP会考虑到所有引用的类的命名空间,除非明确声明否则。
    public function readS3(){
        $aws = Aws::factory('../aws/aws-config.json');
        $client = $aws->get('S3');
        ...
    }